Split main promise event filter into multiple filters (#4792)

JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
This commit is contained in:
Zoltan Herczeg
2021-10-11 12:48:50 +02:00
committed by GitHub
parent f6eac3afdc
commit d4231e7251
4 changed files with 20 additions and 14 deletions
+4 -2
View File
@@ -1301,9 +1301,11 @@ described in [jerry_promise_event_type_t](#jerry_promise_event_type_t).
Possible values: Possible values:
- JERRY_PROMISE_EVENT_FILTER_DISABLE - Disable reporting of all events. - JERRY_PROMISE_EVENT_FILTER_DISABLE - Disable reporting of all events.
- JERRY_PROMISE_EVENT_FILTER_MAIN - Enables the following events: - JERRY_PROMISE_EVENT_FILTER_CREATE - Enables the following event:
- JERRY_PROMISE_EVENT_CREATE - JERRY_PROMISE_EVENT_CREATE
- JERRY_PROMISE_EVENT_FILTER_RESOLVE - Enables the following event:
- JERRY_PROMISE_EVENT_RESOLVE - JERRY_PROMISE_EVENT_RESOLVE
- JERRY_PROMISE_EVENT_FILTER_REJECT - Enables the following event:
- JERRY_PROMISE_EVENT_REJECT - JERRY_PROMISE_EVENT_REJECT
- JERRY_PROMISE_EVENT_FILTER_ERROR - Enables the following events: - JERRY_PROMISE_EVENT_FILTER_ERROR - Enables the following events:
- JERRY_PROMISE_EVENT_RESOLVE_FULFILLED - JERRY_PROMISE_EVENT_RESOLVE_FULFILLED
@@ -6152,7 +6154,7 @@ main (void)
{ {
jerry_init (JERRY_INIT_EMPTY); jerry_init (JERRY_INIT_EMPTY);
jerry_promise_set_callback (JERRY_PROMISE_EVENT_FILTER_MAIN, promise_callback, NULL); jerry_promise_set_callback (JERRY_PROMISE_EVENT_FILTER_CREATE, promise_callback, NULL);
const char *source_p = "var p = Promise.resolve(0)\n" const char *source_p = "var p = Promise.resolve(0)\n"
"p.then(function (v) { return v; })"; "p.then(function (v) { return v; })";
@@ -195,7 +195,7 @@ ecma_reject_promise (ecma_value_t promise, /**< promise */
JERRY_ASSERT (ecma_promise_get_flags (obj_p) & ECMA_PROMISE_IS_PENDING); JERRY_ASSERT (ecma_promise_get_flags (obj_p) & ECMA_PROMISE_IS_PENDING);
#if JERRY_PROMISE_CALLBACK #if JERRY_PROMISE_CALLBACK
if (JERRY_UNLIKELY (JERRY_CONTEXT (promise_callback_filters) & JERRY_PROMISE_EVENT_FILTER_MAIN)) if (JERRY_UNLIKELY (JERRY_CONTEXT (promise_callback_filters) & JERRY_PROMISE_EVENT_FILTER_REJECT))
{ {
JERRY_ASSERT (JERRY_CONTEXT (promise_callback) != NULL); JERRY_ASSERT (JERRY_CONTEXT (promise_callback) != NULL);
JERRY_CONTEXT (promise_callback) (JERRY_PROMISE_EVENT_REJECT, JERRY_CONTEXT (promise_callback) (JERRY_PROMISE_EVENT_REJECT,
@@ -282,7 +282,7 @@ ecma_fulfill_promise (ecma_value_t promise, /**< promise */
} }
#if JERRY_PROMISE_CALLBACK #if JERRY_PROMISE_CALLBACK
if (JERRY_UNLIKELY (JERRY_CONTEXT (promise_callback_filters) & JERRY_PROMISE_EVENT_FILTER_MAIN)) if (JERRY_UNLIKELY (JERRY_CONTEXT (promise_callback_filters) & JERRY_PROMISE_EVENT_FILTER_RESOLVE))
{ {
JERRY_ASSERT (JERRY_CONTEXT (promise_callback) != NULL); JERRY_ASSERT (JERRY_CONTEXT (promise_callback) != NULL);
JERRY_CONTEXT (promise_callback) (JERRY_PROMISE_EVENT_RESOLVE, JERRY_CONTEXT (promise_callback) (JERRY_PROMISE_EVENT_RESOLVE,
@@ -514,7 +514,7 @@ ecma_op_create_promise_object (ecma_value_t executor, /**< the executor function
promise_object_p->reactions = reactions; promise_object_p->reactions = reactions;
#if JERRY_PROMISE_CALLBACK #if JERRY_PROMISE_CALLBACK
if (JERRY_UNLIKELY (JERRY_CONTEXT (promise_callback_filters) & JERRY_PROMISE_EVENT_FILTER_MAIN)) if (JERRY_UNLIKELY (JERRY_CONTEXT (promise_callback_filters) & JERRY_PROMISE_EVENT_FILTER_CREATE))
{ {
JERRY_ASSERT (JERRY_CONTEXT (promise_callback) != NULL); JERRY_ASSERT (JERRY_CONTEXT (promise_callback) != NULL);
JERRY_CONTEXT (promise_callback) (JERRY_PROMISE_EVENT_CREATE, JERRY_CONTEXT (promise_callback) (JERRY_PROMISE_EVENT_CREATE,
+10 -8
View File
@@ -688,21 +688,23 @@ typedef enum
typedef enum typedef enum
{ {
JERRY_PROMISE_EVENT_FILTER_DISABLE = 0, /**< disable reporting of all events */ JERRY_PROMISE_EVENT_FILTER_DISABLE = 0, /**< disable reporting of all events */
JERRY_PROMISE_EVENT_FILTER_MAIN = (1 << 0), /**< enables the following events: JERRY_PROMISE_EVENT_FILTER_CREATE = (1 << 0), /**< enables the following event:
* JERRY_PROMISE_EVENT_CREATE * JERRY_PROMISE_EVENT_CREATE */
* JERRY_PROMISE_EVENT_RESOLVE JERRY_PROMISE_EVENT_FILTER_RESOLVE = (1 << 1), /**< enables the following event:
* JERRY_PROMISE_EVENT_REJECT */ * JERRY_PROMISE_EVENT_RESOLVE */
JERRY_PROMISE_EVENT_FILTER_ERROR = (1 << 1), /**< enables the following events: JERRY_PROMISE_EVENT_FILTER_REJECT = (1 << 2), /**< enables the following event:
* JERRY_PROMISE_EVENT_REJECT */
JERRY_PROMISE_EVENT_FILTER_ERROR = (1 << 3), /**< enables the following events:
* JERRY_PROMISE_EVENT_RESOLVE_FULFILLED * JERRY_PROMISE_EVENT_RESOLVE_FULFILLED
* JERRY_PROMISE_EVENT_REJECT_FULFILLED * JERRY_PROMISE_EVENT_REJECT_FULFILLED
* JERRY_PROMISE_EVENT_REJECT_WITHOUT_HANDLER * JERRY_PROMISE_EVENT_REJECT_WITHOUT_HANDLER
* JERRY_PROMISE_EVENT_CATCH_HANDLER_ADDED */ * JERRY_PROMISE_EVENT_CATCH_HANDLER_ADDED */
JERRY_PROMISE_EVENT_FILTER_REACTION_JOB = (1 << 2), /**< enables the following events: JERRY_PROMISE_EVENT_FILTER_REACTION_JOB = (1 << 4), /**< enables the following events:
* JERRY_PROMISE_EVENT_BEFORE_REACTION_JOB * JERRY_PROMISE_EVENT_BEFORE_REACTION_JOB
* JERRY_PROMISE_EVENT_AFTER_REACTION_JOB */ * JERRY_PROMISE_EVENT_AFTER_REACTION_JOB */
JERRY_PROMISE_EVENT_FILTER_ASYNC_MAIN = (1 << 3), /**< enables the following events: JERRY_PROMISE_EVENT_FILTER_ASYNC_MAIN = (1 << 5), /**< enables the following event:
* JERRY_PROMISE_EVENT_ASYNC_AWAIT */ * JERRY_PROMISE_EVENT_ASYNC_AWAIT */
JERRY_PROMISE_EVENT_FILTER_ASYNC_REACTION_JOB = (1 << 4), /**< enables the following events: JERRY_PROMISE_EVENT_FILTER_ASYNC_REACTION_JOB = (1 << 6), /**< enables the following events:
* JERRY_PROMISE_EVENT_ASYNC_BEFORE_RESOLVE * JERRY_PROMISE_EVENT_ASYNC_BEFORE_RESOLVE
* JERRY_PROMISE_EVENT_ASYNC_BEFORE_REJECT * JERRY_PROMISE_EVENT_ASYNC_BEFORE_REJECT
* JERRY_PROMISE_EVENT_ASYNC_AFTER_RESOLVE * JERRY_PROMISE_EVENT_ASYNC_AFTER_RESOLVE
+3 -1
View File
@@ -134,7 +134,9 @@ main (void)
jerry_init (JERRY_INIT_EMPTY); jerry_init (JERRY_INIT_EMPTY);
jerry_promise_event_filter_t filters = (JERRY_PROMISE_EVENT_FILTER_MAIN jerry_promise_event_filter_t filters = (JERRY_PROMISE_EVENT_FILTER_CREATE
| JERRY_PROMISE_EVENT_FILTER_RESOLVE
| JERRY_PROMISE_EVENT_FILTER_REJECT
| JERRY_PROMISE_EVENT_FILTER_ERROR | JERRY_PROMISE_EVENT_FILTER_ERROR
| JERRY_PROMISE_EVENT_FILTER_REACTION_JOB | JERRY_PROMISE_EVENT_FILTER_REACTION_JOB
| JERRY_PROMISE_EVENT_FILTER_ASYNC_MAIN | JERRY_PROMISE_EVENT_FILTER_ASYNC_MAIN