Implement other routines of Promise (#1729)
Add Promise.resolve, Promise.reject, Promise.race, Promise.all and Promise.prototype.catch Also it fixes the issue 1763 JerryScript-DCO-1.0-Signed-off-by: Zidong Jiang zidong.jiang@intel.com
This commit is contained in:
@@ -58,6 +58,23 @@ typedef struct
|
||||
ecma_collection_header_t *reject_reactions; /**< list of PromiseRejectReactions */
|
||||
} ecma_promise_object_t;
|
||||
|
||||
/**
|
||||
* Use symbolic constant to represent the internal property name of
|
||||
* promise related structures.
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
ECMA_PROMISE_PROPERTY_PROMISE, /**< [[Promise]] property */
|
||||
ECMA_PROMISE_PROPERTY_RESOLVE, /**< [[Resolve]] property */
|
||||
ECMA_PROMISE_PROPERTY_REJECT, /**< [[Reject]] property */
|
||||
ECMA_PROMISE_PROPERTY_CAPABILITY, /**< [[Capability]] property */
|
||||
ECMA_PROMISE_PROPERTY_HANDLER, /**< [[Handler]] property */
|
||||
ECMA_PROMISE_PROPERTY_ALREADY_CALLED, /**< [[AlreadyCalled]] property */
|
||||
ECMA_PROMISE_PROPERTY_INDEX, /**< [[Index]] property */
|
||||
ECMA_PROMISE_PROPERTY_VALUE, /**< [[Values]] property */
|
||||
ECMA_PROMISE_PROPERTY_REMAINING_ELEMENT /**< [[RemainingElement]] property */
|
||||
} ecma_promise_property_symbolic_constant_t;
|
||||
|
||||
bool ecma_is_promise (ecma_object_t *obj_p);
|
||||
ecma_value_t ecma_promise_get_result (ecma_object_t *obj_p);
|
||||
void ecma_promise_set_result (ecma_object_t *obj_p, ecma_value_t result);
|
||||
@@ -72,8 +89,8 @@ ecma_value_t ecma_promise_new_capability (void);
|
||||
ecma_value_t
|
||||
ecma_promise_then (ecma_value_t promise,
|
||||
ecma_value_t on_fulfilled,
|
||||
ecma_value_t on_rejected,
|
||||
ecma_value_t result_capability);
|
||||
ecma_value_t on_rejected);
|
||||
|
||||
/**
|
||||
* @}
|
||||
* @}
|
||||
|
||||
Reference in New Issue
Block a user