Moving type conversion helpers from libecmaoperations to libecmaobjects.

This commit is contained in:
Ruben Ayrapetyan
2014-08-18 16:26:22 +04:00
parent bcddffbefb
commit 15b65a27fb
5 changed files with 142 additions and 110 deletions
-104
View File
@@ -315,110 +315,6 @@ ecma_op_to_object (ecma_value_t value) /**< ecma-value */
JERRY_UNIMPLEMENTED_REF_UNUSED_VARS(value);
} /* ecma_op_to_object */
/**
* ECMA-defined conversion of string (zero-terminated) to Number.
*
* See also:
* ECMA-262 v5, 9.6
*
* @return ecma-number
*/
ecma_number_t
ecma_zt_string_to_number (const ecma_char_t *str_p) /**< zero-terminated string */
{
FIXME (Implement according to ECMA);
ecma_number_t ret_value = 0;
while (*str_p != '\0')
{
if (*str_p >= '0' && *str_p <= '9')
{
ret_value *= 10;
ret_value += (ecma_number_t) (*str_p - '0');
}
else
{
JERRY_UNIMPLEMENTED();
}
}
return ret_value;
} /* ecma_zt_string_to_number */
/**
* ECMA-defined conversion of UInt32 to String (zero-terminated).
*/
void
ecma_op_to_string_uint32 (uint32_t value, /**< value to convert */
ecma_char_t *out_buffer_p, /**< buffer for zero-terminated string */
size_t buffer_size) /**< size of buffer */
{
FIXME (Implement according to ECMA);
ecma_char_t *p = (ecma_char_t*) ((uint8_t*) out_buffer_p + buffer_size) - 1;
*p-- = '\0';
do
{
JERRY_ASSERT (p != out_buffer_p);
*p-- = (ecma_char_t) ("0123456789"[value % 10]);
value /= 10;
}
while (value != 0);
if (likely (p != out_buffer_p))
{
ssize_t bytes_to_move = ((uint8_t*) out_buffer_p + buffer_size) - (uint8_t*) p;
__memmove (out_buffer_p, p, (size_t) bytes_to_move);
}
} /* ecma_op_to_string_uint32 */
/**
* ECMA-defined conversion of UInt32 value to Number value
*
* @return number - result of conversion.
*/
ecma_number_t
ecma_uint32_to_number (uint32_t value) /**< unsigned 32-bit integer value */
{
TODO(Implement according to ECMA);
return (ecma_number_t) value;
} /* ecma_uint32_to_number */
/**
* ECMA-defined conversion of Number value to Uint32 value
*
* See also:
* ECMA-262 v5, 9.6
*
* @return number - result of conversion.
*/
uint32_t
ecma_number_to_uint32 (ecma_number_t value) /**< unsigned 32-bit integer value */
{
TODO(Implement according to ECMA);
return (uint32_t) value;
} /* ecma_number_to_uint32 */
/**
* ECMA-defined conversion of Number value to Int32 value
*
* See also:
* ECMA-262 v5, 9.5
*
* @return number - result of conversion.
*/
int32_t
ecma_number_to_int32 (ecma_number_t value) /**< unsigned 32-bit integer value */
{
TODO(Implement according to ECMA);
return (int32_t) value;
} /* ecma_number_to_int32 */
/**
* @}
* @}