@@ -1072,6 +1072,47 @@ jerry_value_is_object (const jerry_value_t value)
10721072- [jerry_release_value](#jerry_release_value)
10731073
10741074
1075+ ## jerry_value_is_promise
1076+
1077+ **Summary**
1078+
1079+ Returns whether the given `jerry_value_t` is a promise value.
1080+
1081+ *Note*: This API depends on the ES2015-subset profile.
1082+
1083+ **Prototype**
1084+
1085+ ```c
1086+ bool
1087+ jerry_value_is_promise (const jerry_value_t value)
1088+ ```
1089+
1090+ - `value` - api value
1091+ - return value
1092+ - true, if the given `jerry_value_t` is a promise
1093+ - false, otherwise
1094+
1095+ **Example**
1096+
1097+ ```c
1098+ {
1099+ jerry_value_t value;
1100+ ... // create or acquire value
1101+
1102+ if (jerry_value_is_promise (value))
1103+ {
1104+ ...
1105+ }
1106+
1107+ jerry_release_value (value);
1108+ }
1109+ ```
1110+
1111+ **See also**
1112+
1113+ - [jerry_release_value](#jerry_release_value)
1114+
1115+
10751116## jerry_value_is_string
10761117
10771118**Summary**
@@ -1980,6 +2021,64 @@ jerry_value_to_string (const jerry_value_t value);
19802021- [jerry_value_to_primitive](#jerry_value_to_primitive)
19812022
19822023
2024+ # Functions for promise objects
2025+
2026+ These APIs all depends on the ES2015-subset profile.
2027+
2028+ ## jerry_resolve_or_reject_promise
2029+
2030+ **Summary**
2031+
2032+ Resolve or reject the promise with an argument.
2033+
2034+ **Prototype**
2035+
2036+ ```c
2037+ jerry_value_t
2038+ jerry_resolve_or_reject_promise (jerry_value_t promise,
2039+ jerry_value_t argument,
2040+ bool is_resolve)
2041+ ```
2042+
2043+ - `promise` - the promise value
2044+ - `argument` - the argument for resolve or reject
2045+ - `is_resolve` - whether the promise should be resolved or rejected
2046+ - return value
2047+ - undefined jerry value - resolve or reject successed
2048+ - jerry value with error flag - otherwise
2049+
2050+ **Example**
2051+
2052+ ```c
2053+ {
2054+ jerry_value_t promise = ... // acquire/create a promise object.
2055+
2056+ ...
2057+
2058+ bool is_resolve = ... // whether the promise should be resolved or rejected
2059+ jerry_value_t argument = ... // prepare the argumnent for the resolve or reject.
2060+
2061+ jerry_value_t is_ok = jerry_resolve_or_reject_promise (promise,
2062+ argument,
2063+ is_resolve);
2064+
2065+ if (jerry_value_has_error_flag (is_ok))
2066+ {
2067+ // handle the error.
2068+ }
2069+
2070+ jerry_release_value (is_ok);
2071+ jerry_release_value (argument);
2072+ jerry_release_value (promise);
2073+ }
2074+ ```
2075+
2076+ **See also**
2077+
2078+ - [jerry_release_value](#jerry_release_value)
2079+ - [jerry_value_has_error_flag](#jerry_value_has_error_flag)
2080+
2081+
19832082# Acquire and release API values
19842083
19852084## jerry_acquire_value
@@ -2425,6 +2524,41 @@ jerry_create_object (void);
24252524- [jerry_release_value](#jerry_release_value)
24262525
24272526
2527+ ## jerry_create_promise
2528+
2529+ **Summary**
2530+
2531+ Create an empty promise object which can be resolved or rejected later
2532+ by calling jerry_resolve_or_reject_promise.
2533+
2534+ *Note*: This API depends on the ES2015-subset profile.
2535+
2536+ **Prototype**
2537+
2538+ ```c
2539+ jerry_value_t
2540+ jerry_create_promise (void)
2541+ ```
2542+
2543+ - return value - value of the newly created promise
2544+
2545+ **Example**
2546+
2547+ ```c
2548+ {
2549+ jerry_value_t p = jerry_create_promise ();
2550+
2551+ ...// usage of the promise
2552+
2553+ jerry_release_value (p);
2554+ }
2555+
2556+ **See also**
2557+
2558+ - [jerry_resolve_or_reject_promise](#jerry_resolve_or_reject_promise)
2559+ - [jerry_release_value](#jerry_release_value)
2560+
2561+
24282562## jerry_create_string
24292563
24302564**Summary**
@@ -3528,7 +3662,7 @@ static const jerry_object_native_info_t native_obj_type_info =
35283662 {
35293663 // The type of this's native pointer matches what is expected.
35303664 // Only now is it safe to cast to native_obj_t * and dereference the
3531- // pointer:
3665+ // pointer:
35323666 native_obj_t *native_obj = native_p;
35333667 native_obj->bar = ...; // Safe to access now!
35343668 }
@@ -3582,7 +3716,7 @@ jerry_set_object_native_pointer (const jerry_value_t obj_val,
35823716**Example**
35833717
35843718See [jerry_get_object_native_pointer](#jerry_get_object_native_pointer) for a
3585- best-practice example.
3719+ best-practice example.
35863720
35873721**See also**
35883722
0 commit comments