From b773ef074ca7699231584800ffedef10ec92349b Mon Sep 17 00:00:00 2001 From: Ruben Ayrapetyan Date: Fri, 24 Oct 2014 21:58:53 +0400 Subject: [PATCH] Fixing exception handling in ecma_op_to_number. --- src/libecmaoperations/ecma-conversion.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/libecmaoperations/ecma-conversion.c b/src/libecmaoperations/ecma-conversion.c index abb6d7acb..f09f731f4 100644 --- a/src/libecmaoperations/ecma-conversion.c +++ b/src/libecmaoperations/ecma-conversion.c @@ -332,13 +332,17 @@ ecma_op_to_number (ecma_value_t value) /**< ecma-value */ } case ECMA_TYPE_OBJECT: { - ecma_completion_value_t completion_to_primitive = ecma_op_to_primitive (value, ECMA_PREFERRED_TYPE_NUMBER); - JERRY_ASSERT(ecma_is_completion_value_normal (completion_to_primitive)); + ecma_completion_value_t ret_value; - ecma_completion_value_t completion_to_number = ecma_op_to_number (completion_to_primitive.u.value); - ecma_free_completion_value (completion_to_primitive); + ECMA_TRY_CATCH (completion_to_primitive, + ecma_op_to_primitive (value, ECMA_PREFERRED_TYPE_NUMBER), + ret_value); - return completion_to_number; + ret_value = ecma_op_to_number (completion_to_primitive.u.value); + + ECMA_FINALIZE (completion_to_primitive); + + return ret_value; } }