From 2d5a5c37b03e1c412157211e5c6ddcc8ce10c028 Mon Sep 17 00:00:00 2001 From: Ruben Ayrapetyan Date: Mon, 20 Oct 2014 13:47:21 +0400 Subject: [PATCH] Fixing number bitwise operations. --- src/libcoreint/opcodes-ecma-bitwise.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/libcoreint/opcodes-ecma-bitwise.c b/src/libcoreint/opcodes-ecma-bitwise.c index 8227ff7c5..bedb7cc4f 100644 --- a/src/libcoreint/opcodes-ecma-bitwise.c +++ b/src/libcoreint/opcodes-ecma-bitwise.c @@ -60,7 +60,7 @@ do_number_bitwise_logic (int_data_t *int_data, /**< interpreter context */ ecma_number_t* res_p = ecma_alloc_number (); int32_t left_int32 = ecma_number_to_int32 (*left_p); - int32_t right_int32 = ecma_number_to_int32 (*right_p); + // int32_t right_int32 = ecma_number_to_int32 (*right_p); uint32_t left_uint32 = ecma_number_to_uint32 (*left_p); uint32_t right_uint32 = ecma_number_to_uint32 (*right_p); @@ -69,17 +69,17 @@ do_number_bitwise_logic (int_data_t *int_data, /**< interpreter context */ { case number_bitwise_logic_and: { - *res_p = ecma_int32_to_number (left_int32 & right_int32); + *res_p = ecma_int32_to_number ((int32_t) (left_uint32 & right_uint32)); break; } case number_bitwise_logic_or: { - *res_p = ecma_int32_to_number (left_int32 | right_int32); + *res_p = ecma_int32_to_number ((int32_t) (left_uint32 | right_uint32)); break; } case number_bitwise_logic_xor: { - *res_p = ecma_int32_to_number (left_int32 ^ right_int32); + *res_p = ecma_int32_to_number ((int32_t) (left_uint32 ^ right_uint32)); break; } case number_bitwise_shift_left: @@ -99,7 +99,7 @@ do_number_bitwise_logic (int_data_t *int_data, /**< interpreter context */ } case number_bitwise_not: { - *res_p = ecma_int32_to_number (~right_int32); + *res_p = ecma_int32_to_number ((int32_t) ~right_uint32); break; } }