@@ -1072,6 +1072,47 @@ jerry_value_is_object (const jerry_value_t value)
1072
1072
- [jerry_release_value](#jerry_release_value)
1073
1073
1074
1074
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
+
1075
1116
## jerry_value_is_string
1076
1117
1077
1118
**Summary**
@@ -1980,6 +2021,64 @@ jerry_value_to_string (const jerry_value_t value);
1980
2021
- [jerry_value_to_primitive](#jerry_value_to_primitive)
1981
2022
1982
2023
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
+
1983
2082
# Acquire and release API values
1984
2083
1985
2084
## jerry_acquire_value
@@ -2425,6 +2524,41 @@ jerry_create_object (void);
2425
2524
- [jerry_release_value](#jerry_release_value)
2426
2525
2427
2526
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
+
2428
2562
## jerry_create_string
2429
2563
2430
2564
**Summary**
@@ -3528,7 +3662,7 @@ static const jerry_object_native_info_t native_obj_type_info =
3528
3662
{
3529
3663
// The type of this's native pointer matches what is expected.
3530
3664
// Only now is it safe to cast to native_obj_t * and dereference the
3531
- // pointer:
3665
+ // pointer:
3532
3666
native_obj_t *native_obj = native_p;
3533
3667
native_obj->bar = ...; // Safe to access now!
3534
3668
}
@@ -3582,7 +3716,7 @@ jerry_set_object_native_pointer (const jerry_value_t obj_val,
3582
3716
**Example**
3583
3717
3584
3718
See [jerry_get_object_native_pointer](#jerry_get_object_native_pointer) for a
3585
- best-practice example.
3719
+ best-practice example.
3586
3720
3587
3721
**See also**
3588
3722
0 commit comments