From 01fe5ab190aaae7cf443b98d4d21a9b11be4403c Mon Sep 17 00:00:00 2001 From: Zoltan Herczeg Date: Wed, 12 Apr 2017 15:05:29 +0200 Subject: [PATCH] Small improvements for `type` property support. (#1724) JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com --- docs/02.API-REFERENCE.md | 8 +- jerry-core/ecma/base/ecma-gc.c | 28 ++--- jerry-core/ecma/base/ecma-globals.h | 21 +--- .../base/ecma-helpers-external-pointers.c | 92 ++++++-------- jerry-core/ecma/base/ecma-helpers.c | 2 +- jerry-core/ecma/base/ecma-helpers.h | 15 +-- jerry-core/jerry.c | 114 ++++++++++-------- jerry-core/jerryscript.h | 72 +++++------ 8 files changed, 161 insertions(+), 191 deletions(-) diff --git a/docs/02.API-REFERENCE.md b/docs/02.API-REFERENCE.md index 80621c14f..392df8308 100644 --- a/docs/02.API-REFERENCE.md +++ b/docs/02.API-REFERENCE.md @@ -3312,13 +3312,13 @@ Users can check the pointer's type before processing it. ```c bool jerry_get_object_native_pointer (const jerry_value_t obj_val, - void **out_native_p, - const jerry_object_native_info_t **out_info_p) + void **out_native_pointer_p, + const jerry_object_native_info_t **out_native_info_p) ``` - `obj_val` - object value to get native pointer from. -- `out_native_p` - native pointer (output parameter). -- `out_info_p` - native pointer's type infomation (output parameter). +- `out_native_pointer_p` - native pointer (output parameter). +- `out_native_info_p` - native pointer's type infomation (output parameter). - return value - true, if there is native pointer associated with the object - false, otherwise diff --git a/jerry-core/ecma/base/ecma-gc.c b/jerry-core/ecma/base/ecma-gc.c index cdb8c3b1b..976b7e168 100644 --- a/jerry-core/ecma/base/ecma-gc.c +++ b/jerry-core/ecma/base/ecma-gc.c @@ -354,7 +354,7 @@ ecma_gc_mark (ecma_object_t *object_p) /**< object to mark from */ } /* ecma_gc_mark */ /** - * Free the native handle/pointer by calling its free callback + * Free the native handle/pointer by calling its free callback. */ static void ecma_gc_free_native_pointer (ecma_property_t *property_p, /**< property */ @@ -366,36 +366,32 @@ ecma_gc_free_native_pointer (ecma_property_t *property_p, /**< property */ || id == LIT_INTERNAL_MAGIC_STRING_NATIVE_POINTER); ecma_property_value_t *value_p = ECMA_PROPERTY_VALUE_PTR (property_p); - ecma_external_pointer_t native_p; - ecma_external_pointer_t free_cb; - void *package_p; + ecma_native_pointer_t *native_pointer_p; - package_p = ECMA_GET_INTERNAL_VALUE_POINTER (void, value_p->value); + native_pointer_p = ECMA_GET_INTERNAL_VALUE_POINTER (ecma_native_pointer_t, + value_p->value); if (id == LIT_INTERNAL_MAGIC_STRING_NATIVE_HANDLE) { - native_p = ((ecma_native_handle_package_t *) package_p)->handle_p; - free_cb = ((ecma_native_handle_package_t *) package_p)->free_cb; - - if ((jerry_object_free_callback_t) free_cb != NULL) + if (native_pointer_p->info_p != NULL) { - ((jerry_object_free_callback_t) free_cb) ((uintptr_t) native_p); + ecma_external_pointer_t freecb_p = (ecma_external_pointer_t) native_pointer_p->info_p; + ((jerry_object_free_callback_t) freecb_p) ((uintptr_t) native_pointer_p->data_p); } } else { - native_p = ((ecma_native_pointer_package_t *) package_p)->native_p; - free_cb = *(ecma_external_pointer_t *) (((ecma_native_pointer_package_t *) package_p)->info_p); - - if ((jerry_object_native_free_callback_t) free_cb != NULL) + if (native_pointer_p->info_p != NULL) { - ((jerry_object_native_free_callback_t) free_cb) ((void *) native_p); + const jerry_object_native_info_t *native_info_p = (const jerry_object_native_info_t *) native_pointer_p->info_p; + + native_info_p->free_cb (native_pointer_p->data_p); } } } /* ecma_gc_free_native_pointer */ /** - * Free specified object + * Free specified object. */ void ecma_gc_sweep (ecma_object_t *object_p) /**< object to free */ diff --git a/jerry-core/ecma/base/ecma-globals.h b/jerry-core/ecma/base/ecma-globals.h index eb8002203..a1353e659 100644 --- a/jerry-core/ecma/base/ecma-globals.h +++ b/jerry-core/ecma/base/ecma-globals.h @@ -196,26 +196,13 @@ typedef int32_t ecma_integer_value_t; typedef uintptr_t ecma_external_pointer_t; /** - * Representation for native handle package. - * - * Note: It is for the deprecated api: - * jerry_get_object_native_handle and jerry_set_object_native_handle - */ - -typedef struct -{ - ecma_external_pointer_t handle_p; /**< points to the external native object */ - ecma_external_pointer_t free_cb; /**< free callback of the native handle */ -} ecma_native_handle_package_t; - -/** - * Representation of the native pointer package. + * Representation for native pointer data. */ typedef struct { - ecma_external_pointer_t native_p; /**< points to the external native object */ - ecma_external_pointer_t info_p; /**< type info of the native pointer */ -} ecma_native_pointer_package_t; + void *data_p; /**< points to the data of the object */ + void *info_p; /**< free info or callback */ +} ecma_native_pointer_t; /** * Special property identifiers. diff --git a/jerry-core/ecma/base/ecma-helpers-external-pointers.c b/jerry-core/ecma/base/ecma-helpers-external-pointers.c index 5b2b07837..bd81ec35f 100644 --- a/jerry-core/ecma/base/ecma-helpers-external-pointers.c +++ b/jerry-core/ecma/base/ecma-helpers-external-pointers.c @@ -39,7 +39,8 @@ static bool ecma_create_native_property (ecma_object_t *obj_p, /**< object to create property in */ lit_magic_string_id_t id, /**< identifier of internal * property to create */ - void *package_p) /**< value to store in the property */ + void *data_p, /**< native pointer data */ + void *info_p) /**< native pointer's info */ { JERRY_ASSERT (id == LIT_INTERNAL_MAGIC_STRING_NATIVE_HANDLE || id == LIT_INTERNAL_MAGIC_STRING_NATIVE_POINTER); @@ -49,24 +50,29 @@ ecma_create_native_property (ecma_object_t *obj_p, /**< object to create propert ecma_property_t *property_p = ecma_find_named_property (obj_p, &name); bool is_new = (property_p == NULL); - ecma_property_value_t *value_p; + + ecma_native_pointer_t *native_pointer_p; if (is_new) { + ecma_property_value_t *value_p; value_p = ecma_create_named_data_property (obj_p, &name, ECMA_PROPERTY_FLAG_WRITABLE, NULL); + + native_pointer_p = jmem_heap_alloc_block (sizeof (ecma_native_pointer_t)); + + ECMA_SET_INTERNAL_VALUE_POINTER (value_p->value, native_pointer_p); } else { - value_p = ECMA_PROPERTY_VALUE_PTR (property_p); - ecma_free_native_package_property (property_p, id); + ecma_property_value_t *value_p = ECMA_PROPERTY_VALUE_PTR (property_p); + + native_pointer_p = ECMA_GET_INTERNAL_VALUE_POINTER (ecma_native_pointer_t, value_p->value); } JERRY_ASSERT (ECMA_STRING_IS_REF_EQUALS_TO_ONE (&name)); - JERRY_STATIC_ASSERT (sizeof (uint32_t) <= sizeof (value_p->value), - size_of_internal_property_value_must_be_greater_than_or_equal_to_4_bytes); - - ECMA_SET_INTERNAL_VALUE_POINTER (value_p->value, package_p); + native_pointer_p->data_p = data_p; + native_pointer_p->info_p = info_p; return is_new; } /* ecma_create_native_property */ @@ -79,17 +85,13 @@ ecma_create_native_property (ecma_object_t *obj_p, /**< object to create propert */ bool ecma_create_native_handle_property (ecma_object_t *obj_p, /**< object to create property in */ - ecma_external_pointer_t handle_p, /**< native handle */ - ecma_external_pointer_t free_cb) /**< native handle's free callback*/ + void *handle_p, /**< native handle */ + void *free_cb) /**< native handle's free callback*/ { - ecma_native_handle_package_t *package_p; - package_p = jmem_heap_alloc_block (sizeof (ecma_native_handle_package_t)); - package_p->handle_p = handle_p; - package_p->free_cb = free_cb; - return ecma_create_native_property (obj_p, LIT_INTERNAL_MAGIC_STRING_NATIVE_HANDLE, - package_p); + handle_p, + free_cb); } /* ecma_create_native_handle_property */ /** @@ -100,17 +102,13 @@ ecma_create_native_handle_property (ecma_object_t *obj_p, /**< object to create */ bool ecma_create_native_pointer_property (ecma_object_t *obj_p, /**< object to create property in */ - ecma_external_pointer_t native_p, /**< native pointer */ - ecma_external_pointer_t info_p) /**< native pointer's type info */ + void *native_p, /**< native pointer */ + void *info_p) /**< native pointer's type info */ { - ecma_native_pointer_package_t *package_p; - package_p = jmem_heap_alloc_block (sizeof (ecma_native_pointer_package_t)); - package_p->native_p = native_p; - package_p->info_p = info_p; - return ecma_create_native_property (obj_p, LIT_INTERNAL_MAGIC_STRING_NATIVE_POINTER, - package_p); + native_p, + info_p); } /* ecma_create_native_pointer_property */ /** @@ -121,14 +119,13 @@ ecma_create_native_pointer_property (ecma_object_t *obj_p, /**< object to create * - LIT_INTERNAL_MAGIC_STRING_NATIVE_HANDLE * - LIT_INTERNAL_MAGIC_STRING_NATIVE_POINTER * - * @return true - if property exists and it's value is returned through out_pointer_p, - * false - otherwise (value returned through out_pointer_p is NULL) + * @return native pointer data if property exists + * NULL otherwise */ -bool -ecma_get_native_package_value (ecma_object_t *obj_p, /**< object to get property value from */ - lit_magic_string_id_t id, /**< identifier of internal property +ecma_native_pointer_t * +ecma_get_native_pointer_value (ecma_object_t *obj_p, /**< object to get property value from */ + lit_magic_string_id_t id) /**< identifier of internal property * to get value from */ - void **out_pointer_p) /**< [out] value of the native package */ { JERRY_ASSERT (id == LIT_INTERNAL_MAGIC_STRING_NATIVE_HANDLE || id == LIT_INTERNAL_MAGIC_STRING_NATIVE_POINTER); @@ -142,46 +139,27 @@ ecma_get_native_package_value (ecma_object_t *obj_p, /**< object to get property if (property_p == NULL) { - *out_pointer_p = NULL; - - return false; + return NULL; } ecma_property_value_t *value_p = ECMA_PROPERTY_VALUE_PTR (property_p); - *out_pointer_p = ECMA_GET_INTERNAL_VALUE_POINTER (void, value_p->value); - - return true; -} /* ecma_get_native_package_value */ + return ECMA_GET_INTERNAL_VALUE_POINTER (ecma_native_pointer_t, value_p->value); +} /* ecma_get_native_pointer_value */ /** * Free the allocated native package struct. - * - * Note: - * property identifier should be one of the following: - * - LIT_INTERNAL_MAGIC_STRING_NATIVE_HANDLE - * - LIT_INTERNAL_MAGIC_STRING_NATIVE_POINTER */ void -ecma_free_native_package_property (ecma_property_t *prop_p, /**< native property */ - lit_magic_string_id_t id) /**< identifier of internal */ +ecma_free_native_pointer (ecma_property_t *prop_p) /**< native property */ { - JERRY_ASSERT (id == LIT_INTERNAL_MAGIC_STRING_NATIVE_HANDLE - || id == LIT_INTERNAL_MAGIC_STRING_NATIVE_POINTER); - ecma_property_value_t *value_p = ECMA_PROPERTY_VALUE_PTR (prop_p); - void *package_p; - package_p = ECMA_GET_INTERNAL_VALUE_POINTER (void, value_p->value); + ecma_native_pointer_t *native_pointer_p = ECMA_GET_INTERNAL_VALUE_POINTER (ecma_native_pointer_t, + value_p->value); - if (id == LIT_INTERNAL_MAGIC_STRING_NATIVE_HANDLE) - { - jmem_heap_free_block (package_p, sizeof (ecma_native_handle_package_t)); - return; - } - - jmem_heap_free_block (package_p, sizeof (ecma_native_pointer_package_t)); -} /* ecma_free_native_package_property */ + jmem_heap_free_block (native_pointer_p, sizeof (ecma_native_pointer_t)); +} /* ecma_free_native_pointer */ /** * @} diff --git a/jerry-core/ecma/base/ecma-helpers.c b/jerry-core/ecma/base/ecma-helpers.c index ca13f1af5..e49043986 100644 --- a/jerry-core/ecma/base/ecma-helpers.c +++ b/jerry-core/ecma/base/ecma-helpers.c @@ -733,7 +733,7 @@ ecma_free_property (ecma_object_t *object_p, /**< object the property belongs to if (name_cp == LIT_INTERNAL_MAGIC_STRING_NATIVE_HANDLE || name_cp == LIT_INTERNAL_MAGIC_STRING_NATIVE_POINTER) { - ecma_free_native_package_property (property_p, (lit_magic_string_id_t) name_cp); + ecma_free_native_pointer (property_p); break; } } diff --git a/jerry-core/ecma/base/ecma-helpers.h b/jerry-core/ecma/base/ecma-helpers.h index feee16930..a0b56e2d3 100644 --- a/jerry-core/ecma/base/ecma-helpers.h +++ b/jerry-core/ecma/base/ecma-helpers.h @@ -341,17 +341,10 @@ void ecma_bytecode_ref (ecma_compiled_code_t *bytecode_p); void ecma_bytecode_deref (ecma_compiled_code_t *bytecode_p); /* ecma-helpers-external-pointers.c */ -bool ecma_create_native_handle_property (ecma_object_t *obj_p, - ecma_external_pointer_t handle_p, - ecma_external_pointer_t free_cb); -bool ecma_create_native_pointer_property (ecma_object_t *obj_p, - ecma_external_pointer_t native_p, - ecma_external_pointer_t info_p); -bool ecma_get_native_package_value (ecma_object_t *obj_p, - lit_magic_string_id_t id, - void **out_pointer_p); -void ecma_free_native_package_property (ecma_property_t *prop_p, - lit_magic_string_id_t id); +bool ecma_create_native_handle_property (ecma_object_t *obj_p, void *handle_p, void *free_cb); +bool ecma_create_native_pointer_property (ecma_object_t *obj_p, void *native_p, void *info_p); +ecma_native_pointer_t *ecma_get_native_pointer_value (ecma_object_t *obj_p, lit_magic_string_id_t id); +void ecma_free_native_pointer (ecma_property_t *prop_p); /* ecma-helpers-conversion.c */ ecma_number_t ecma_utf8_string_to_number (const lit_utf8_byte_t *str_p, lit_utf8_size_t str_size); diff --git a/jerry-core/jerry.c b/jerry-core/jerry.c index 0d594fdf5..3bcdfaeea 100644 --- a/jerry-core/jerry.c +++ b/jerry-core/jerry.c @@ -1915,49 +1915,24 @@ jerry_get_object_native_handle (const jerry_value_t obj_val, /**< object to get { jerry_assert_api_available (); - ecma_native_handle_package_t *package_p; - - bool does_exist = ecma_get_native_package_value (ecma_get_object_from_value (obj_val), - LIT_INTERNAL_MAGIC_STRING_NATIVE_HANDLE, - (void **) &package_p); - - if (does_exist) + if (!ecma_is_value_object (obj_val)) { - *out_handle_p = package_p->handle_p; + return false; } - return does_exist; + ecma_native_pointer_t *native_pointer_p; + native_pointer_p = ecma_get_native_pointer_value (ecma_get_object_from_value (obj_val), + LIT_INTERNAL_MAGIC_STRING_NATIVE_HANDLE); + + if (native_pointer_p == NULL) + { + return false; + } + + *out_handle_p = (uintptr_t) native_pointer_p->data_p; + return true; } /* jerry_get_object_native_handle */ -/** - * Get native pointer and its type information, associated with specified object. - * - * @return true - if there is an associated pointer (pointer is returned through out_handle_p), - * false - otherwise - */ -bool -jerry_get_object_native_pointer (const jerry_value_t obj_val, /**< object to get native pointer from */ - void **out_native_p, /**< [out] native pointer */ - const jerry_object_native_info_t **out_info_p) /**< [out] the type info - * of the native pointer */ -{ - jerry_assert_api_available (); - - ecma_native_pointer_package_t *package_p; - - bool does_exist = ecma_get_native_package_value (ecma_get_object_from_value (obj_val), - LIT_INTERNAL_MAGIC_STRING_NATIVE_POINTER, - (void **) &package_p); - - if (does_exist) - { - *out_native_p = (void *) package_p->native_p; - *out_info_p = (const jerry_object_native_info_t *) package_p->info_p; - } - - return does_exist; -} /* jerry_get_object_native_pointer */ - /** * Set native handle and an optional free callback for the specified object. * @@ -1979,13 +1954,53 @@ jerry_set_object_native_handle (const jerry_value_t obj_val, /**< object to set { jerry_assert_api_available (); - ecma_object_t *object_p = ecma_get_object_from_value (obj_val); + if (ecma_is_value_object (obj_val)) + { + ecma_object_t *object_p = ecma_get_object_from_value (obj_val); - ecma_create_native_handle_property (object_p, - handle_p, - (ecma_external_pointer_t) freecb_p); + ecma_create_native_handle_property (object_p, + (void *) handle_p, + (void *) (ecma_external_pointer_t) freecb_p); + } } /* jerry_set_object_native_handle */ +/** + * Get native pointer and its type information, associated with specified object. + * + * Note: + * If native pointer is present, its type information is returned + * in out_native_pointer_p and out_native_info_p. + * + * @return true - if there is an associated pointer, + * false - otherwise + */ +bool +jerry_get_object_native_pointer (const jerry_value_t obj_val, /**< object to get native pointer from */ + void **out_native_pointer_p, /**< [out] native pointer */ + const jerry_object_native_info_t **out_native_info_p) /**< [out] the type info + * of the native pointer */ +{ + jerry_assert_api_available (); + + if (!ecma_is_value_object (obj_val)) + { + return false; + } + + ecma_native_pointer_t *native_pointer_p; + native_pointer_p = ecma_get_native_pointer_value (ecma_get_object_from_value (obj_val), + LIT_INTERNAL_MAGIC_STRING_NATIVE_POINTER); + + if (native_pointer_p == NULL) + { + return false; + } + + *out_native_pointer_p = native_pointer_p->data_p; + *out_native_info_p = (const jerry_object_native_info_t *) native_pointer_p->info_p; + return true; +} /* jerry_get_object_native_pointer */ + /** * Set native pointer and an optional type info for the specified object. * @@ -2001,20 +2016,19 @@ jerry_set_object_native_handle (const jerry_value_t obj_val, /**< object to set */ void jerry_set_object_native_pointer (const jerry_value_t obj_val, /**< object to set native pointer in */ - void *native_p, /**< native pointer */ - const jerry_object_native_info_t *info_p) /**< object's native type info */ + void *native_pointer_p, /**< native pointer */ + const jerry_object_native_info_t *native_info_p) /**< object's native type info */ { jerry_assert_api_available (); - ecma_object_t *object_p = ecma_get_object_from_value (obj_val); + if (ecma_is_value_object (obj_val)) + { + ecma_object_t *object_p = ecma_get_object_from_value (obj_val); - ecma_create_native_pointer_property (object_p, - (ecma_external_pointer_t) native_p, - (ecma_external_pointer_t) info_p); + ecma_create_native_pointer_property (object_p, native_pointer_p, (void *) native_info_p); + } } /* jerry_set_object_native_pointer */ - - /** * Applies the given function to the every property in the object. * diff --git a/jerry-core/jerryscript.h b/jerry-core/jerryscript.h index 266e71977..42ea9e40b 100644 --- a/jerry-core/jerryscript.h +++ b/jerry-core/jerryscript.h @@ -36,17 +36,17 @@ extern "C" */ /** - * Major version of JerryScript API + * Major version of JerryScript API. */ #define JERRY_API_MAJOR_VERSION 1 /** - * Minor version of JerryScript API + * Minor version of JerryScript API. */ #define JERRY_API_MINOR_VERSION 0 /** - * Jerry init flags + * JerryScript init flags. */ typedef enum { @@ -59,7 +59,7 @@ typedef enum } jerry_init_flag_t; /** - * Jerry API Error object types + * JerryScript API Error object types. */ typedef enum { @@ -72,6 +72,9 @@ typedef enum JERRY_ERROR_URI /**< URIError */ } jerry_error_t; +/** + * JerryScript feature types. + */ typedef enum { JERRY_FEATURE_CPOINTER_32_BIT, /**< 32 bit compressed pointers */ @@ -86,33 +89,32 @@ typedef enum } jerry_feature_t; /** - * Jerry's char value + * Character type of JerryScript. */ typedef uint8_t jerry_char_t; /** - * Pointer to an array of character values + * Pointer to an array of character values. */ typedef jerry_char_t *jerry_char_ptr_t; /** - * Jerry's size + * Size type of JerryScript. */ typedef uint32_t jerry_size_t; /** - * Jerry's length + * Length type of JerryScript. */ typedef uint32_t jerry_length_t; /** - * Description of a JerryScript value + * Description of a JerryScript value. */ typedef uint32_t jerry_value_t; - /** - * Description of ECMA property descriptor + * Description of ECMA property descriptor. */ typedef struct { @@ -154,7 +156,7 @@ typedef struct } jerry_property_descriptor_t; /** - * Type of an external function handler + * Type of an external function handler. */ typedef jerry_value_t (*jerry_external_handler_t) (const jerry_value_t function_obj, const jerry_value_t this_val, @@ -162,17 +164,17 @@ typedef jerry_value_t (*jerry_external_handler_t) (const jerry_value_t function_ const jerry_length_t args_count); /** - * Native free callback of an object (deprecated) + * Native free callback of an object (deprecated). */ typedef void (*jerry_object_free_callback_t) (const uintptr_t native_p); /** - * Native free callback of an object + * Native free callback of an object. */ typedef void (*jerry_object_native_free_callback_t) (void *native_p); /** - * Function type applied for each data property of an object + * Function type applied for each data property of an object. */ typedef bool (*jerry_object_property_foreach_t) (const jerry_value_t property_name, const jerry_value_t property_value, @@ -186,7 +188,7 @@ typedef struct } jerry_object_native_info_t; /** - * General engine functions + * General engine functions. */ void jerry_init (jerry_init_flag_t flags); void jerry_cleanup (void); @@ -196,7 +198,7 @@ void jerry_get_memory_limits (size_t *out_data_bss_brk_limit_p, size_t *out_stac void jerry_gc (void); /** - * Parser and executor functions + * Parser and executor functions. */ bool jerry_run_simple (const jerry_char_t *script_source_p, size_t script_source_size, jerry_init_flag_t flags); jerry_value_t jerry_parse (const jerry_char_t *source_p, size_t source_size, bool is_strict); @@ -206,12 +208,12 @@ jerry_value_t jerry_run (const jerry_value_t func_val); jerry_value_t jerry_eval (const jerry_char_t *source_p, size_t source_size, bool is_strict); /** - * Get the global context + * Get the global context. */ jerry_value_t jerry_get_global_object (void); /** - * Checker functions of 'jerry_value_t' + * Checker functions of 'jerry_value_t'. */ bool jerry_value_is_array (const jerry_value_t value); bool jerry_value_is_boolean (const jerry_value_t value); @@ -224,25 +226,25 @@ bool jerry_value_is_string (const jerry_value_t value); bool jerry_value_is_undefined (const jerry_value_t value); /** - * Checker function of whether the specified compile feature is enabled + * Checker function of whether the specified compile feature is enabled. */ bool jerry_is_feature_enabled (const jerry_feature_t feature); /** - * Error flag manipulation functions + * Error flag manipulation functions. */ bool jerry_value_has_error_flag (const jerry_value_t value); void jerry_value_clear_error_flag (jerry_value_t *value_p); void jerry_value_set_error_flag (jerry_value_t *value_p); /** - * Getter functions of 'jerry_value_t' + * Getter functions of 'jerry_value_t'. */ bool jerry_get_boolean_value (const jerry_value_t value); double jerry_get_number_value (const jerry_value_t value); /** - * Functions for string values + * Functions for string values. */ jerry_size_t jerry_get_string_size (const jerry_value_t value); jerry_size_t jerry_get_utf8_string_size (const jerry_value_t value); @@ -264,12 +266,12 @@ jerry_size_t jerry_substring_to_utf8_char_buffer (const jerry_value_t value, jerry_size_t buffer_size); /** - * Functions for array object values + * Functions for array object values. */ uint32_t jerry_get_array_length (const jerry_value_t value); /** - * Converters of 'jerry_value_t' + * Converters of 'jerry_value_t'. */ bool jerry_value_to_boolean (const jerry_value_t value); jerry_value_t jerry_value_to_number (const jerry_value_t value); @@ -278,17 +280,17 @@ jerry_value_t jerry_value_to_primitive (const jerry_value_t value); jerry_value_t jerry_value_to_string (const jerry_value_t value); /** - * Acquire types with reference counter (increase the references) + * Acquire types with reference counter (increase the references). */ jerry_value_t jerry_acquire_value (jerry_value_t value); /** - * Release the referenced values + * Release the referenced values. */ void jerry_release_value (jerry_value_t value); /** - * Create functions of API values + * Create functions of API values. */ jerry_value_t jerry_create_array (uint32_t size); jerry_value_t jerry_create_boolean (bool value); @@ -308,7 +310,7 @@ jerry_value_t jerry_create_string_sz (const jerry_char_t *str_p, jerry_size_t st jerry_value_t jerry_create_undefined (void); /** - * General API functions of JS objects + * General API functions of JS objects. */ bool jerry_has_property (const jerry_value_t obj_val, const jerry_value_t prop_name_val); bool jerry_has_own_property (const jerry_value_t obj_val, const jerry_value_t prop_name_val); @@ -347,23 +349,23 @@ void jerry_set_object_native_handle (const jerry_value_t obj_val, uintptr_t hand jerry_object_free_callback_t freecb_p); bool jerry_get_object_native_pointer (const jerry_value_t obj_val, - void **out_native_p, - const jerry_object_native_info_t **out_info_p); + void **out_native_pointer_p, + const jerry_object_native_info_t **out_pointer_info_p); void jerry_set_object_native_pointer (const jerry_value_t obj_val, - void *native_p, - const jerry_object_native_info_t *info_p); + void *native_pointer_p, + const jerry_object_native_info_t *native_info_p); bool jerry_foreach_object_property (const jerry_value_t obj_val, jerry_object_property_foreach_t foreach_p, void *user_data_p); /** - * Input validator functions + * Input validator functions. */ bool jerry_is_valid_utf8_string (const jerry_char_t *utf8_buf_p, jerry_size_t buf_size); bool jerry_is_valid_cesu8_string (const jerry_char_t *cesu8_buf_p, jerry_size_t buf_size); /** - * Snapshot functions + * Snapshot functions. */ size_t jerry_parse_and_save_snapshot (const jerry_char_t *source_p, size_t source_size, bool is_for_global, bool is_strict, uint32_t *buffer_p, size_t buffer_size);