New jerry_get_symbol_description API function (#4206)

JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
This commit is contained in:
Zoltan Herczeg
2020-09-21 10:39:38 +02:00
committed by GitHub
parent 4d135bec5d
commit 3c723c9bc1
4 changed files with 122 additions and 0 deletions
+66
View File
@@ -3996,6 +3996,68 @@ main (void)
- [jerry_well_known_symbol_t](#jerry_well_known_symbol_t)
## jerry_get_symbol_description
**Summary**
Returns with the `[[Description]]` internal property of a symbol value.
*Notes*:
- Returned value must be freed with [jerry_release_value](#jerry_release_value) when it
is no longer needed.
- This API depends on a build option (`JERRY_BUILTIN_SYMBOL`) and can be checked
in runtime with the `JERRY_FEATURE_SYMBOL` feature enum value,
see: [jerry_is_feature_enabled](#jerry_is_feature_enabled).
- The es.next profile enables this by default.
- If the symbol support is not enabled an error will be returned.
**Prototype**
```c
jerry_value_t
jerry_get_symbol_description (const jerry_value_t value);
```
- `value` - symbol value
- return value
- string or undefined value containing the symbol's description - if success
- thrown error, otherwise
*New in version [[NEXT_RELEASE]]*.
**Example**
[doctest]: # ()
```c
#include "jerryscript.h"
int
main (void)
{
jerry_init (JERRY_INIT_EMPTY);
jerry_value_t string_value = jerry_create_string ((const jerry_char_t *) "foo");
jerry_value_t symbol_value = jerry_create_symbol (string_value);
jerry_release_value (string_value);
jerry_value_t symbol_description = jerry_get_symbol_description (symbol_value);
// usage of symbol_desc_string
jerry_release_value (symbol_description);
jerry_release_value (symbol_value);
jerry_cleanup ();
return 0;
}
```
**See also**
- [jerry_get_symbol_descriptive_string](#jerry_get_symbol_descriptive_string)
## jerry_get_symbol_descriptive_string
**Summary**
@@ -4055,6 +4117,10 @@ main (void)
}
```
**See also**
- [jerry_get_symbol_description](#jerry_get_symbol_description)
# Functions for BigInts
These APIs all depend on build option (`JERRY_BUILTIN_BIGINT`).