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
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 20 additions and 14 deletions

View File

@ -1301,9 +1301,11 @@ described in [jerry_promise_event_type_t](#jerry_promise_event_type_t).
Possible values:
- 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_FILTER_RESOLVE - Enables the following event:
- JERRY_PROMISE_EVENT_RESOLVE
- JERRY_PROMISE_EVENT_FILTER_REJECT - Enables the following event:
- JERRY_PROMISE_EVENT_REJECT
- JERRY_PROMISE_EVENT_FILTER_ERROR - Enables the following events:
- JERRY_PROMISE_EVENT_RESOLVE_FULFILLED
@ -6152,7 +6154,7 @@ main (void)
{
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"
"p.then(function (v) { return v; })";

View File

@ -195,7 +195,7 @@ ecma_reject_promise (ecma_value_t promise, /**< promise */
JERRY_ASSERT (ecma_promise_get_flags (obj_p) & ECMA_PROMISE_IS_PENDING);
#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_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_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_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;
#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_CONTEXT (promise_callback) (JERRY_PROMISE_EVENT_CREATE,

View File

@ -688,21 +688,23 @@ typedef enum
typedef enum
{
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_CREATE
* JERRY_PROMISE_EVENT_RESOLVE
* JERRY_PROMISE_EVENT_REJECT */
JERRY_PROMISE_EVENT_FILTER_ERROR = (1 << 1), /**< enables the following events:
JERRY_PROMISE_EVENT_FILTER_CREATE = (1 << 0), /**< enables the following event:
* JERRY_PROMISE_EVENT_CREATE */
JERRY_PROMISE_EVENT_FILTER_RESOLVE = (1 << 1), /**< enables the following event:
* JERRY_PROMISE_EVENT_RESOLVE */
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_REJECT_FULFILLED
* JERRY_PROMISE_EVENT_REJECT_WITHOUT_HANDLER
* 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_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_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_REJECT
* JERRY_PROMISE_EVENT_ASYNC_AFTER_RESOLVE

View File

@ -134,7 +134,9 @@ main (void)
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_REACTION_JOB
| JERRY_PROMISE_EVENT_FILTER_ASYNC_MAIN