Add new input validator API functions (#1576)

Fixes #1549

JerryScript-DCO-1.0-Signed-off-by: László Langó llango.u-szeged@partner.samsung.com
This commit is contained in:
László Langó
2017-02-16 18:31:04 +01:00
committed by Dániel Bátyai
parent 93eb35081f
commit 799726aa42
10 changed files with 193 additions and 22 deletions
+116 -1
View File
@@ -1233,6 +1233,7 @@ jerry_get_string_size (const jerry_value_t value);
- [jerry_create_string](#jerry_create_string)
- [jerry_get_string_length](#jerry_get_string_length)
- [jerry_is_valid_cesu8_string](#jerry_is_valid_cesu8_string)
## jerry_get_utf8_string_size
@@ -1272,6 +1273,8 @@ jerry_get_utf8_string_size (const jerry_value_t value);
- [jerry_create_string_from_utf8](#jerry_create_string_from_utf8)
- [jerry_get_utf8_string_length](#jerry_get_utf8_string_length)
- [jerry_is_valid_utf8_string](#jerry_is_valid_utf8_string)
## jerry_get_string_length
@@ -1308,6 +1311,8 @@ jerry_get_string_length (const jerry_value_t value);
- [jerry_create_string](#jerry_create_string)
- [jerry_get_string_size](#jerry_get_string_size)
- [jerry_is_valid_cesu8_string](#jerry_is_valid_cesu8_string)
## jerry_get_utf8_string_length
@@ -1347,6 +1352,8 @@ jerry_get_utf8_string_length (const jerry_value_t value);
- [jerry_create_string_from_utf8](#jerry_create_string_from_utf8)
- [jerry_get_utf8_string_size](#jerry_get_utf8_string_size)
- [jerry_is_valid_utf8_string](#jerry_is_valid_utf8_string)
## jerry_string_to_char_buffer
@@ -1394,6 +1401,8 @@ jerry_string_to_char_buffer (const jerry_value_t value,
- [jerry_create_string](#jerry_create_string)
- [jerry_get_string_size](#jerry_get_string_size)
- [jerry_is_valid_cesu8_string](#jerry_is_valid_cesu8_string)
## jerry_string_to_utf8_char_buffer
@@ -1441,6 +1450,8 @@ jerry_string_to_utf8_char_buffer (const jerry_value_t value,
- [jerry_create_string_from_utf8](#jerry_create_string_from_utf8)
- [jerry_get_utf8_string_size](#jerry_get_utf8_string_size)
- [jerry_is_valid_utf8_string](#jerry_is_valid_utf8_string)
## jerry_substring_to_char_buffer
@@ -1496,6 +1507,8 @@ jerry_substring_to_char_buffer (const jerry_value_t value,
- [jerry_create_string](#jerry_create_string)
- [jerry_get_string_size](#jerry_get_string_size)
- [jerry_get_string_length](#jerry_get_string_length)
- [jerry_is_valid_cesu8_string](#jerry_is_valid_cesu8_string)
## jerry_substring_to_utf8_char_buffer
@@ -1548,9 +1561,12 @@ jerry_substring_to_utf8_char_buffer (const jerry_value_t value,
**See also**
- [jerry_create_string_from_utf8](#jerry_create_string)
- [jerry_create_string_from_utf8](#jerry_create_string_from_utf8)
- [jerry_get_utf8_string_size](#jerry_get_utf8_string_size)
- [jerry_get_utf8_string_length](#jerry_get_utf8_string_length)
- [jerry_is_valid_utf8_string](#jerry_is_valid_utf8_string)
# Functions for array object values
## jerry_get_array_length
@@ -2260,6 +2276,7 @@ jerry_create_string (const jerry_char_t *str_p);
**See also**
- [jerry_is_valid_cesu8_string](#jerry_is_valid_cesu8_string)
- [jerry_create_string_sz](#jerry_create_string_sz)
@@ -2298,8 +2315,10 @@ jerry_create_string_sz (const jerry_char_t *str_p,
**See also**
- [jerry_is_valid_cesu8_string](#jerry_is_valid_cesu8_string)
- [jerry_create_string](#jerry_create_string)
## jerry_create_string_from_utf8
**Summary**
@@ -2333,6 +2352,7 @@ jerry_create_string_from_utf8 (const jerry_char_t *str_p);
**See also**
- [jerry_is_valid_utf8_string](#jerry_is_valid_utf8_string)
- [jerry_create_string_sz_from_utf8](#jerry_create_string_sz_from_utf8)
@@ -2373,8 +2393,10 @@ jerry_create_string_sz (const jerry_char_t *str_p,
**See also**
- [jerry_is_valid_utf8_string](#jerry_is_valid_utf8_string)
- [jerry_create_string_from_utf8](#jerry_create_string_from_utf8)
## jerry_create_undefined
**Summary**
@@ -3287,6 +3309,99 @@ bool foreach_function (const jerry_value_t prop_name,
- [jerry_object_property_foreach_t](#jerry_object_property_foreach_t)
# Input validator functions
## jerry_is_valid_utf8_string
**Summary**
Validate UTF-8 string.
**Prototype**
```c
bool
jerry_is_valid_utf8_string (const jerry_char_t *utf8_buf_p, /**< UTF-8 string */
jerry_size_t buf_size) /**< string size */
```
- `utf8_buf_p` - UTF-8 input string
- `buf_size` - input string size
**Example**
```c
{
const jerry_char_t script[] = "print ('Hello, World!');";
size_t script_size = strlen ((const char *) script);
if (jerry_is_valid_utf8_string (script, (jerry_size_t) script_size))
{
jerry_run_simple (script, script_size, JERRY_INIT_EMPTY);
}
}
```
**See also**
- [jerry_run_simple](#jerry_run_simple)
- [jerry_create_string_from_utf8](#jerry_create_string_from_utf8)
- [jerry_create_string_sz_from_utf8](#jerry_create_string_sz_from_utf8)
- [jerry_get_utf8_string_size](#jerry_get_utf8_string_size)
- [jerry_get_utf8_string_length](#jerry_get_utf8_string_length)
- [jerry_string_to_utf8_char_buffer](#jerry_string_to_utf8_char_buffer)
- [jerry_substring_to_utf8_char_buffer](#jerry_substring_to_utf8_char_buffer)
## jerry_is_valid_cesu8_string
**Summary**
Validate CESU-8 string.
**Prototype**
```c
bool
jerry_is_valid_cesu8_string (const jerry_char_t *cesu8_buf_p, /**< CESU-8 string */
jerry_size_t buf_size) /**< string size */
```
- `cesu8_buf_p` - CESU-8 input string
- `buf_size` - input string size
**Example**
```c
{
jerry_init (JERRY_INIT_EMPTY);
const jerry_char_t script[] = "Hello, World!";
size_t script_size = strlen ((const char *) script);
if (jerry_is_valid_cesu8_string (script, (jerry_size_t) script_size))
{
jerry_value_t string_value = jerry_create_string_sz (script,
(jerry_size_t) script_size));
... // usage of string_value
jerry_release_value (string_value);
}
jerry_cleanup ();
}
```
**See also**
- [jerry_create_string](#jerry_create_string)
- [jerry_create_string_sz](#jerry_create_string_sz)
- [jerry_get_string_size](#jerry_get_string_size)
- [jerry_get_string_length](#jerry_get_string_length)
- [jerry_string_to_char_buffer](#jerry_string_to_char_buffer)
- [jerry_substring_to_char_buffer](#jerry_substring_to_char_buffer)
# Snapshot functions
## jerry_parse_and_save_snapshot