Introducing ecma_is_value_{number,string,object} for checking type of ecma-value.

This commit is contained in:
Ruben Ayrapetyan
2014-11-19 17:39:54 +03:00
parent 30ff59fca3
commit 7b3eaf146b
25 changed files with 117 additions and 78 deletions
+2 -2
View File
@@ -238,7 +238,7 @@ void
ecma_gc_update_may_ref_younger_object_flag_by_value (ecma_object_t *obj_p, /**< object */
ecma_value_t value) /**< value */
{
if (value.value_type != ECMA_TYPE_OBJECT)
if (!ecma_is_value_object (value))
{
return;
}
@@ -331,7 +331,7 @@ ecma_gc_mark (ecma_object_t *object_p, /**< start object */
{
ecma_value_t value = property_p->u.named_data_property.value;
if (value.value_type == ECMA_TYPE_OBJECT)
if (ecma_is_value_object (value))
{
ecma_object_t *value_obj_p = ECMA_GET_NON_NULL_POINTER(value.value);
+36
View File
@@ -92,6 +92,42 @@ ecma_is_value_true (ecma_value_t value) /**< ecma-value */
return (value.value_type == ECMA_TYPE_SIMPLE && value.value == ECMA_SIMPLE_VALUE_TRUE);
} /* ecma_is_value_true */
/**
* Check if the value is ecma-number.
*
* @return true - if the value contains ecma-number value,
* false - otherwise.
*/
bool
ecma_is_value_number (ecma_value_t value) /**< ecma-value */
{
return (value.value_type == ECMA_TYPE_NUMBER);
} /* ecma_is_value_number */
/**
* Check if the value is ecma-string.
*
* @return true - if the value contains ecma-string value,
* false - otherwise.
*/
bool
ecma_is_value_string (ecma_value_t value) /**< ecma-value */
{
return (value.value_type == ECMA_TYPE_STRING);
} /* ecma_is_value_string */
/**
* Check if the value is object.
*
* @return true - if the value contains object value,
* false - otherwise.
*/
bool
ecma_is_value_object (ecma_value_t value) /**< ecma-value */
{
return (value.value_type == ECMA_TYPE_OBJECT);
} /* ecma_is_value_object */
/**
* Simple value constructor
*/
+4
View File
@@ -67,6 +67,10 @@ extern bool ecma_is_value_null (ecma_value_t value);
extern bool ecma_is_value_boolean (ecma_value_t value);
extern bool ecma_is_value_true (ecma_value_t value);
extern bool ecma_is_value_number (ecma_value_t value);
extern bool ecma_is_value_string (ecma_value_t value);
extern bool ecma_is_value_object (ecma_value_t value);
extern ecma_value_t ecma_make_simple_value (ecma_simple_value_t value);
extern ecma_value_t ecma_make_number_value (ecma_number_t* num_p);
extern ecma_value_t ecma_make_string_value (ecma_string_t* ecma_string_p);