mirror of
https://github.com/jerryscript-project/jerryscript.git
synced 2025-12-15 16:29:21 +00:00
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:
parent
f6eac3afdc
commit
d4231e7251
@ -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; })";
|
||||
|
||||
@ -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,
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user