From 379698733a6f0b6ab1161e1ecd55733e230024b3 Mon Sep 17 00:00:00 2001 From: Robert Sipka Date: Wed, 25 May 2016 11:04:04 +0200 Subject: [PATCH] Optimising the ToString operation Create new ecma-string from positive integers without cast it to ecma_number JerryScript-DCO-1.0-Signed-off-by: Robert Sipka rsipka.uszeged@partner.samsung.com --- jerry-core/ecma/operations/ecma-conversion.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/jerry-core/ecma/operations/ecma-conversion.c b/jerry-core/ecma/operations/ecma-conversion.c index adccb6233..1b8074dd8 100644 --- a/jerry-core/ecma/operations/ecma-conversion.c +++ b/jerry-core/ecma/operations/ecma-conversion.c @@ -355,7 +355,20 @@ ecma_op_to_string (ecma_value_t value) /**< ecma value */ res_p = ecma_get_string_from_value (value); res_p = ecma_copy_or_ref_ecma_string (res_p); } - else if (ecma_is_value_number (value)) + else if (ecma_is_value_integer_number (value)) + { + ecma_integer_value_t num = ecma_get_integer_from_value (value); + + if (num < 0) + { + res_p = ecma_new_ecma_string_from_number ((ecma_number_t) num); + } + else + { + res_p = ecma_new_ecma_string_from_uint32 ((uint32_t) num); + } + } + else if (ecma_is_value_float_number (value)) { ecma_number_t num = ecma_get_number_from_value (value); res_p = ecma_new_ecma_string_from_number (num);