Introducing ecma_is_value_{number,string,object} for checking type of ecma-value.
This commit is contained in:
@@ -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);
|
||||
|
||||
|
||||
@@ -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
|
||||
*/
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user