Change guarding of ecma_is_value_bigint and ecma_is_value_symbol (#4269)
JerryScript-DCO-1.0-Signed-off-by: Virag Orkenyi orkvi@inf.u-szeged.hu
This commit is contained in:
@@ -323,7 +323,6 @@ ecma_is_value_string (ecma_value_t value) /**< ecma value */
|
|||||||
return ((value & (ECMA_VALUE_TYPE_MASK - 0x4)) == ECMA_TYPE_STRING);
|
return ((value & (ECMA_VALUE_TYPE_MASK - 0x4)) == ECMA_TYPE_STRING);
|
||||||
} /* ecma_is_value_string */
|
} /* ecma_is_value_string */
|
||||||
|
|
||||||
#if ENABLED (JERRY_ESNEXT)
|
|
||||||
/**
|
/**
|
||||||
* Check if the value is symbol.
|
* Check if the value is symbol.
|
||||||
*
|
*
|
||||||
@@ -333,11 +332,13 @@ ecma_is_value_string (ecma_value_t value) /**< ecma value */
|
|||||||
inline bool JERRY_ATTR_CONST JERRY_ATTR_ALWAYS_INLINE
|
inline bool JERRY_ATTR_CONST JERRY_ATTR_ALWAYS_INLINE
|
||||||
ecma_is_value_symbol (ecma_value_t value) /**< ecma value */
|
ecma_is_value_symbol (ecma_value_t value) /**< ecma value */
|
||||||
{
|
{
|
||||||
|
#if ENABLED (JERRY_ESNEXT)
|
||||||
return (ecma_get_value_type_field (value) == ECMA_TYPE_SYMBOL);
|
return (ecma_get_value_type_field (value) == ECMA_TYPE_SYMBOL);
|
||||||
} /* ecma_is_value_symbol */
|
#else /* ENABLED (JERRY_ESNEXT) */
|
||||||
|
JERRY_UNUSED (value);
|
||||||
|
return false;
|
||||||
#endif /* ENABLED (JERRY_ESNEXT) */
|
#endif /* ENABLED (JERRY_ESNEXT) */
|
||||||
|
} /* ecma_is_value_symbol */
|
||||||
#if ENABLED (JERRY_BUILTIN_BIGINT)
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Check if the value is bigint.
|
* Check if the value is bigint.
|
||||||
@@ -348,10 +349,13 @@ ecma_is_value_symbol (ecma_value_t value) /**< ecma value */
|
|||||||
inline bool JERRY_ATTR_CONST JERRY_ATTR_ALWAYS_INLINE
|
inline bool JERRY_ATTR_CONST JERRY_ATTR_ALWAYS_INLINE
|
||||||
ecma_is_value_bigint (ecma_value_t value) /**< ecma value */
|
ecma_is_value_bigint (ecma_value_t value) /**< ecma value */
|
||||||
{
|
{
|
||||||
|
#if ENABLED (JERRY_BUILTIN_BIGINT)
|
||||||
return (ecma_get_value_type_field (value) == ECMA_TYPE_BIGINT);
|
return (ecma_get_value_type_field (value) == ECMA_TYPE_BIGINT);
|
||||||
} /* ecma_is_value_bigint */
|
#else /* !ENABLED (JERRY_BUILTIN_BIGINT) */
|
||||||
|
JERRY_UNUSED (value);
|
||||||
|
return false;
|
||||||
#endif /* ENABLED (JERRY_BUILTIN_BIGINT) */
|
#endif /* ENABLED (JERRY_BUILTIN_BIGINT) */
|
||||||
|
} /* ecma_is_value_bigint */
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Check if the value can be property name.
|
* Check if the value can be property name.
|
||||||
@@ -429,8 +433,8 @@ ecma_check_value_type_is_spec_defined (ecma_value_t value) /**< ecma value */
|
|||||||
|| ecma_is_value_boolean (value)
|
|| ecma_is_value_boolean (value)
|
||||||
|| ecma_is_value_number (value)
|
|| ecma_is_value_number (value)
|
||||||
|| ecma_is_value_string (value)
|
|| ecma_is_value_string (value)
|
||||||
|| ECMA_CHECK_SYMBOL_IN_ASSERT (value)
|
|| ecma_is_value_bigint (value)
|
||||||
|| ECMA_CHECK_BIGINT_IN_ASSERT (value)
|
|| ecma_is_value_symbol (value)
|
||||||
|| ecma_is_value_object (value));
|
|| ecma_is_value_object (value));
|
||||||
} /* ecma_check_value_type_is_spec_defined */
|
} /* ecma_check_value_type_is_spec_defined */
|
||||||
|
|
||||||
|
|||||||
@@ -192,30 +192,6 @@ typedef enum
|
|||||||
*/
|
*/
|
||||||
#define ECMA_BOOL_TO_BITFIELD(x) ((x) ? 1 : 0)
|
#define ECMA_BOOL_TO_BITFIELD(x) ((x) ? 1 : 0)
|
||||||
|
|
||||||
#if ENABLED (JERRY_ESNEXT)
|
|
||||||
/**
|
|
||||||
* JERRY_ASSERT compatible macro for checking whether the given ecma-value is symbol
|
|
||||||
*/
|
|
||||||
#define ECMA_CHECK_SYMBOL_IN_ASSERT(value) (ecma_is_value_symbol ((value)))
|
|
||||||
#else /* !ENABLED (JERRY_ESNEXT) */
|
|
||||||
/**
|
|
||||||
* JERRY_ASSERT compatible macro for checking whether the given ecma-value is symbol
|
|
||||||
*/
|
|
||||||
#define ECMA_CHECK_SYMBOL_IN_ASSERT(value) (false)
|
|
||||||
#endif /* ENABLED (JERRY_ESNEXT) */
|
|
||||||
|
|
||||||
#if ENABLED (JERRY_BUILTIN_BIGINT)
|
|
||||||
/**
|
|
||||||
* JERRY_ASSERT compatible macro for checking whether the given ecma-value is bigint
|
|
||||||
*/
|
|
||||||
#define ECMA_CHECK_BIGINT_IN_ASSERT(value) ecma_is_value_bigint(value)
|
|
||||||
#else /* !ENABLED (JERRY_BUILTIN_BIGINT) */
|
|
||||||
/**
|
|
||||||
* JERRY_ASSERT compatible macro for checking whether the given ecma-value is bigint
|
|
||||||
*/
|
|
||||||
#define ECMA_CHECK_BIGINT_IN_ASSERT(value) false
|
|
||||||
#endif /* ENABLED (JERRY_BUILTIN_BIGINT) */
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Check whether the given type is ECMA_OBJECT_TYPE_PROXY
|
* Check whether the given type is ECMA_OBJECT_TYPE_PROXY
|
||||||
*
|
*
|
||||||
@@ -252,12 +228,8 @@ bool JERRY_ATTR_CONST ecma_are_values_integer_numbers (ecma_value_t first_value,
|
|||||||
bool JERRY_ATTR_CONST ecma_is_value_float_number (ecma_value_t value);
|
bool JERRY_ATTR_CONST ecma_is_value_float_number (ecma_value_t value);
|
||||||
bool JERRY_ATTR_CONST ecma_is_value_number (ecma_value_t value);
|
bool JERRY_ATTR_CONST ecma_is_value_number (ecma_value_t value);
|
||||||
bool JERRY_ATTR_CONST ecma_is_value_string (ecma_value_t value);
|
bool JERRY_ATTR_CONST ecma_is_value_string (ecma_value_t value);
|
||||||
#if ENABLED (JERRY_ESNEXT)
|
|
||||||
bool JERRY_ATTR_CONST ecma_is_value_symbol (ecma_value_t value);
|
bool JERRY_ATTR_CONST ecma_is_value_symbol (ecma_value_t value);
|
||||||
#endif /* ENABLED (JERRY_ESNEXT) */
|
|
||||||
#if ENABLED (JERRY_BUILTIN_BIGINT)
|
|
||||||
bool JERRY_ATTR_CONST ecma_is_value_bigint (ecma_value_t value);
|
bool JERRY_ATTR_CONST ecma_is_value_bigint (ecma_value_t value);
|
||||||
#endif /* ENABLED (JERRY_BUILTIN_BIGINT) */
|
|
||||||
bool JERRY_ATTR_CONST ecma_is_value_prop_name (ecma_value_t value);
|
bool JERRY_ATTR_CONST ecma_is_value_prop_name (ecma_value_t value);
|
||||||
bool JERRY_ATTR_CONST ecma_is_value_direct_string (ecma_value_t value);
|
bool JERRY_ATTR_CONST ecma_is_value_direct_string (ecma_value_t value);
|
||||||
bool JERRY_ATTR_CONST ecma_is_value_non_direct_string (ecma_value_t value);
|
bool JERRY_ATTR_CONST ecma_is_value_non_direct_string (ecma_value_t value);
|
||||||
|
|||||||
@@ -287,8 +287,10 @@ ecma_op_strict_equality_compare (ecma_value_t x, /**< first operand */
|
|||||||
/* The +0 === -0 case handled below. */
|
/* The +0 === -0 case handled below. */
|
||||||
}
|
}
|
||||||
|
|
||||||
JERRY_ASSERT (ecma_is_value_number (x) || ecma_is_value_string (x) || ECMA_CHECK_BIGINT_IN_ASSERT (x));
|
JERRY_ASSERT (ecma_is_value_number (x) || ecma_is_value_string (x) ||
|
||||||
JERRY_ASSERT (ecma_is_value_number (y) || ecma_is_value_string (y) || ECMA_CHECK_BIGINT_IN_ASSERT (y));
|
ecma_is_value_bigint (x));
|
||||||
|
JERRY_ASSERT (ecma_is_value_number (y) || ecma_is_value_string (y) ||
|
||||||
|
ecma_is_value_bigint (y));
|
||||||
|
|
||||||
if (ecma_is_value_string (x))
|
if (ecma_is_value_string (x))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -130,7 +130,7 @@ ecma_op_same_value (ecma_value_t x, /**< ecma value */
|
|||||||
}
|
}
|
||||||
#endif /* ENABLED (JERRY_BUILTIN_BIGINT) */
|
#endif /* ENABLED (JERRY_BUILTIN_BIGINT) */
|
||||||
|
|
||||||
JERRY_ASSERT (ecma_is_value_object (x) || ECMA_CHECK_SYMBOL_IN_ASSERT (x));
|
JERRY_ASSERT (ecma_is_value_object (x) || ecma_is_value_symbol (x));
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
} /* ecma_op_same_value */
|
} /* ecma_op_same_value */
|
||||||
@@ -260,7 +260,7 @@ ecma_op_to_boolean (ecma_value_t value) /**< ecma value */
|
|||||||
}
|
}
|
||||||
#endif /* ENABLED (JERRY_BUILTIN_BIGINT) */
|
#endif /* ENABLED (JERRY_BUILTIN_BIGINT) */
|
||||||
|
|
||||||
JERRY_ASSERT (ecma_is_value_object (value) || ECMA_CHECK_SYMBOL_IN_ASSERT (value));
|
JERRY_ASSERT (ecma_is_value_object (value) || ecma_is_value_symbol (value));
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
} /* ecma_op_to_boolean */
|
} /* ecma_op_to_boolean */
|
||||||
|
|||||||
@@ -86,7 +86,7 @@ ecma_op_create_object_object_arg (ecma_value_t value) /**< argument of construct
|
|||||||
|| ecma_is_value_number (value)
|
|| ecma_is_value_number (value)
|
||||||
|| ecma_is_value_prop_name (value)
|
|| ecma_is_value_prop_name (value)
|
||||||
|| ecma_is_value_boolean (value)
|
|| ecma_is_value_boolean (value)
|
||||||
|| ECMA_CHECK_BIGINT_IN_ASSERT (value));
|
|| ecma_is_value_bigint (value));
|
||||||
|
|
||||||
return ecma_op_to_object (value);
|
return ecma_op_to_object (value);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user