From ab26d578414c919f645b9f0e7485414df8fa6c6e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A1szl=C3=B3=20Lang=C3=B3?= Date: Mon, 7 Mar 2016 16:04:24 +0100 Subject: [PATCH] Don't use messages for errors by default MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Use empty string for message property of builtin error objects by default. Add ERROR_MESSAGES build option. JerryScript-DCO-1.0-Signed-off-by: László Langó llango.u-szeged@partner.samsung.com --- CMakeLists.txt | 1 + Makefile | 5 ++ jerry-core/CMakeLists.txt | 5 ++ .../ecma-builtin-array-prototype.c | 24 ++++----- .../ecma-builtin-boolean-prototype.c | 2 +- .../ecma-builtin-date-prototype.c | 12 ++--- .../ecma/builtin-objects/ecma-builtin-date.c | 2 +- .../ecma-builtin-error-prototype.c | 2 +- .../ecma-builtin-function-prototype.c | 12 ++--- .../builtin-objects/ecma-builtin-global.c | 18 +++---- .../ecma-builtin-helpers-date.c | 2 +- .../builtin-objects/ecma-builtin-helpers.c | 2 +- .../ecma/builtin-objects/ecma-builtin-json.c | 6 +-- .../ecma-builtin-number-prototype.c | 10 ++-- .../ecma-builtin-object-prototype.c | 2 +- .../builtin-objects/ecma-builtin-object.c | 26 +++++----- .../ecma-builtin-regexp-prototype.c | 8 +-- .../builtin-objects/ecma-builtin-regexp.c | 2 +- .../ecma-builtin-string-prototype.c | 2 +- .../ecma-builtin-type-error-thrower.c | 4 +- .../ecma/operations/ecma-array-object.c | 4 +- jerry-core/ecma/operations/ecma-conversion.c | 12 ++--- jerry-core/ecma/operations/ecma-exceptions.c | 18 +++++-- jerry-core/ecma/operations/ecma-exceptions.h | 6 +++ .../ecma/operations/ecma-function-object.c | 10 ++-- .../ecma/operations/ecma-get-put-value.c | 6 +-- jerry-core/ecma/operations/ecma-lex-env.c | 6 +-- .../ecma/operations/ecma-objects-general.c | 8 +-- jerry-core/ecma/operations/ecma-objects.c | 2 +- .../ecma/operations/ecma-regexp-object.c | 12 ++--- jerry-core/parser/regexp/re-compiler.c | 8 +-- jerry-core/parser/regexp/re-parser.c | 50 +++++++++---------- jerry-core/vm/opcodes-ecma-relational.c | 4 +- jerry-core/vm/vm.c | 12 ++--- tests/jerry/date-tostring.js | 5 -- tests/jerry/regression-test-issue-245.js | 1 - tests/jerry/regression-test-issue-316.js | 3 -- 37 files changed, 166 insertions(+), 148 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 34383ad7fa..2930fe3fa8 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -56,6 +56,7 @@ project (Jerry C ASM) option(ENABLE_LTO "Enable LTO build" ON) option(ENABLE_LOG "Enable LOG build" OFF) option(ENABLE_ALL_IN_ONE "Enable ALL_IN_ONE build" OFF) + option(ENABLE_ERROR_MESSAGES "Enable error messages for builtin error objects" OFF) if("${PLATFORM}" STREQUAL "LINUX") set(PLATFORM_EXT "LINUX") diff --git a/Makefile b/Makefile index 5c17adcc24..fb1f708e6e 100644 --- a/Makefile +++ b/Makefile @@ -80,6 +80,11 @@ BUILD_NAME:= CMAKE_DEFINES:=$(CMAKE_DEFINES) -DENABLE_DATE_SYS_CALLS=$(DATE_SYS_CALLS) endif + # Fill error messages for builtin error objects + ifneq ($(ERROR_MESSAGES),) + CMAKE_DEFINES:=$(CMAKE_DEFINES) -DENABLE_ERROR_MESSAGES=$(ERROR_MESSAGES) + endif + # All-in-one build ifneq ($(ALL_IN_ONE),) CMAKE_DEFINES:=$(CMAKE_DEFINES) -DENABLE_ALL_IN_ONE=$(ALL_IN_ONE) diff --git a/jerry-core/CMakeLists.txt b/jerry-core/CMakeLists.txt index a500393d43..0a44797f6e 100644 --- a/jerry-core/CMakeLists.txt +++ b/jerry-core/CMakeLists.txt @@ -190,6 +190,11 @@ project (JerryCore C ASM) set(DEFINES_JERRY ${DEFINES_JERRY} JERRY_ENABLE_DATE_SYS_CALLS) endif() + # Fill error messages for builtin error objects + if("${ENABLE_ERROR_MESSAGES}" STREQUAL "ON") + set(DEFINES_JERRY ${DEFINES_JERRY} JERRY_ENABLE_ERROR_MESSAGES) + endif() + # Platform-specific configuration set(DEFINES_JERRY ${DEFINES_JERRY} ${DEFINES_JERRY_${PLATFORM_EXT}}) diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-array-prototype.c b/jerry-core/ecma/builtin-objects/ecma-builtin-array-prototype.c index 54d5beebdd..fccd1bf4f4 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-array-prototype.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-array-prototype.c @@ -1201,7 +1201,7 @@ ecma_builtin_array_prototype_object_sort (ecma_value_t this_arg, /**< this argum /* Check if the provided compare function is callable. */ if (!ecma_is_value_undefined (arg1) && !ecma_op_is_callable (arg1)) { - return ecma_raise_type_error (""); + return ecma_raise_type_error (ECMA_ERR_MSG ("")); } ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY); @@ -2015,7 +2015,7 @@ ecma_builtin_array_prototype_object_every (ecma_value_t this_arg, /**< this argu /* 4. */ if (!ecma_op_is_callable (arg1)) { - ret_value = ecma_raise_type_error (""); + ret_value = ecma_raise_type_error (ECMA_ERR_MSG ("")); } else { @@ -2116,7 +2116,7 @@ ecma_builtin_array_prototype_object_some (ecma_value_t this_arg, /**< this argum /* 4. */ if (!ecma_op_is_callable (arg1)) { - ret_value = ecma_raise_type_error (""); + ret_value = ecma_raise_type_error (ECMA_ERR_MSG ("")); } else { @@ -2216,7 +2216,7 @@ ecma_builtin_array_prototype_object_for_each (ecma_value_t this_arg, /**< this a /* 4. */ if (!ecma_op_is_callable (arg1)) { - ret_value = ecma_raise_type_error (""); + ret_value = ecma_raise_type_error (ECMA_ERR_MSG ("")); } else { @@ -2311,7 +2311,7 @@ ecma_builtin_array_prototype_object_map (ecma_value_t this_arg, /**< this argume /* 4. */ if (!ecma_op_is_callable (arg1)) { - ret_value = ecma_raise_type_error (""); + ret_value = ecma_raise_type_error (ECMA_ERR_MSG ("")); } else { @@ -2425,7 +2425,7 @@ ecma_builtin_array_prototype_object_filter (ecma_value_t this_arg, /**< this arg /* 4. */ if (!ecma_op_is_callable (arg1)) { - ret_value = ecma_raise_type_error (""); + ret_value = ecma_raise_type_error (ECMA_ERR_MSG ("")); } else { @@ -2550,7 +2550,7 @@ ecma_builtin_array_prototype_object_reduce (ecma_value_t this_arg, /**< this arg /* 4. */ if (!ecma_op_is_callable (callbackfn)) { - ret_value = ecma_raise_type_error (""); + ret_value = ecma_raise_type_error (ECMA_ERR_MSG ("")); } else { @@ -2564,7 +2564,7 @@ ecma_builtin_array_prototype_object_reduce (ecma_value_t this_arg, /**< this arg /* 5. */ if (len_number == ECMA_NUMBER_ZERO && ecma_is_value_undefined (initial_value)) { - ret_value = ecma_raise_type_error (""); + ret_value = ecma_raise_type_error (ECMA_ERR_MSG ("")); } else { @@ -2601,7 +2601,7 @@ ecma_builtin_array_prototype_object_reduce (ecma_value_t this_arg, /**< this arg /* 8.c */ if (!k_present) { - ret_value = ecma_raise_type_error (""); + ret_value = ecma_raise_type_error (ECMA_ERR_MSG ("")); } } /* 9. */ @@ -2695,7 +2695,7 @@ ecma_builtin_array_prototype_object_reduce_right (ecma_value_t this_arg, /**< th /* 4. */ if (!ecma_op_is_callable (callbackfn)) { - ret_value = ecma_raise_type_error (""); + ret_value = ecma_raise_type_error (ECMA_ERR_MSG ("")); } else { @@ -2707,7 +2707,7 @@ ecma_builtin_array_prototype_object_reduce_right (ecma_value_t this_arg, /**< th /* 5. */ if (len_number == ECMA_NUMBER_ZERO && ecma_is_value_undefined (initial_value)) { - ret_value = ecma_raise_type_error (""); + ret_value = ecma_raise_type_error (ECMA_ERR_MSG ("")); } else { @@ -2747,7 +2747,7 @@ ecma_builtin_array_prototype_object_reduce_right (ecma_value_t this_arg, /**< th /* 8.c */ if (!k_present) { - ret_value = ecma_raise_type_error (""); + ret_value = ecma_raise_type_error (ECMA_ERR_MSG ("")); } } /* 9. */ diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-boolean-prototype.c b/jerry-core/ecma/builtin-objects/ecma-builtin-boolean-prototype.c index c06fa8c692..982aa1b573 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-boolean-prototype.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-boolean-prototype.c @@ -119,7 +119,7 @@ ecma_builtin_boolean_prototype_object_value_of (ecma_value_t this_arg) /**< this } } - return ecma_raise_type_error (""); + return ecma_raise_type_error (ECMA_ERR_MSG ("")); } /* ecma_builtin_boolean_prototype_object_value_of */ /** diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-date-prototype.c b/jerry-core/ecma/builtin-objects/ecma-builtin-date-prototype.c index 3761a36308..3075703e47 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-date-prototype.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-date-prototype.c @@ -95,7 +95,7 @@ ecma_builtin_date_prototype_to_date_string (ecma_value_t this_arg) /**< this arg if (!ecma_is_value_object (this_arg) || ecma_object_get_class_name (ecma_get_object_from_value (this_arg)) != LIT_MAGIC_STRING_DATE_UL) { - ret_value = ecma_raise_type_error ("Incompatible type"); + ret_value = ecma_raise_type_error (ECMA_ERR_MSG ("Incompatible type")); } else { @@ -142,7 +142,7 @@ ecma_builtin_date_prototype_to_time_string (ecma_value_t this_arg) /**< this arg if (!ecma_is_value_object (this_arg) || ecma_object_get_class_name (ecma_get_object_from_value (this_arg)) != LIT_MAGIC_STRING_DATE_UL) { - ret_value = ecma_raise_type_error ("Incompatible type"); + ret_value = ecma_raise_type_error (ECMA_ERR_MSG ("Incompatible type")); } else { @@ -262,7 +262,7 @@ ecma_builtin_date_prototype_get_time (ecma_value_t this_arg) /**< this argument } } - return ecma_raise_type_error (""); + return ecma_raise_type_error (ECMA_ERR_MSG ("")); } /* ecma_builtin_date_prototype_get_time */ /** @@ -350,7 +350,7 @@ ecma_builtin_date_prototype_set_time (ecma_value_t this_arg, /**< this argument if (!ecma_is_value_object (this_arg) || ecma_object_get_class_name (ecma_get_object_from_value (this_arg)) != LIT_MAGIC_STRING_DATE_UL) { - ret_value = ecma_raise_type_error ("Incompatible type"); + ret_value = ecma_raise_type_error (ECMA_ERR_MSG ("Incompatible type")); } else { @@ -1146,7 +1146,7 @@ ecma_builtin_date_prototype_to_iso_string (ecma_value_t this_arg) /**< this argu if (ecma_number_is_nan (*prim_num_p) || ecma_number_is_infinity (*prim_num_p)) { - ret_value = ecma_raise_range_error (""); + ret_value = ecma_raise_range_error (ECMA_ERR_MSG ("")); } else { @@ -1207,7 +1207,7 @@ ecma_builtin_date_prototype_to_json (ecma_value_t this_arg, /**< this argument * /* 5. */ if (!ecma_op_is_callable (to_iso)) { - ret_value = ecma_raise_type_error (""); + ret_value = ecma_raise_type_error (ECMA_ERR_MSG ("")); } /* 6. */ else diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-date.c b/jerry-core/ecma/builtin-objects/ecma-builtin-date.c index 1eaa968616..fcd943cbe8 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-date.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-date.c @@ -461,7 +461,7 @@ ecma_builtin_date_now (ecma_value_t this_arg __attr_unused___) /**< this argumen if (gettimeofday (&tv, NULL) != 0) { - return ecma_raise_type_error ("gettimeofday failed"); + return ecma_raise_type_error (ECMA_ERR_MSG ("gettimeofday failed")); } *now_num_p = ((ecma_number_t) tv.tv_sec) * 1000.0 + ((ecma_number_t) (tv.tv_usec / 1000)); diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-error-prototype.c b/jerry-core/ecma/builtin-objects/ecma-builtin-error-prototype.c index 06c3005562..973811dc02 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-error-prototype.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-error-prototype.c @@ -62,7 +62,7 @@ ecma_builtin_error_prototype_object_to_string (ecma_value_t this_arg) /**< this // 2. if (!ecma_is_value_object (this_arg)) { - ret_value = ecma_raise_type_error (""); + ret_value = ecma_raise_type_error (ECMA_ERR_MSG ("")); } else { diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-function-prototype.c b/jerry-core/ecma/builtin-objects/ecma-builtin-function-prototype.c index 6291d537e3..b2a2032ad4 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-function-prototype.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-function-prototype.c @@ -60,7 +60,7 @@ ecma_builtin_function_prototype_object_to_string (ecma_value_t this_arg) /**< th if (!ecma_op_is_callable (this_arg)) { - ret_value = ecma_raise_type_error (""); + ret_value = ecma_raise_type_error (ECMA_ERR_MSG ("")); } else { @@ -89,7 +89,7 @@ ecma_builtin_function_prototype_object_apply (ecma_value_t this_arg, /**< this a /* 1. */ if (!ecma_op_is_callable (this_arg)) { - ret_value = ecma_raise_type_error (""); + ret_value = ecma_raise_type_error (ECMA_ERR_MSG ("")); } else { @@ -105,7 +105,7 @@ ecma_builtin_function_prototype_object_apply (ecma_value_t this_arg, /**< this a /* 3. */ if (!ecma_is_value_object (arg2)) { - ret_value = ecma_raise_type_error (""); + ret_value = ecma_raise_type_error (ECMA_ERR_MSG ("")); } else { @@ -188,7 +188,7 @@ ecma_builtin_function_prototype_object_call (ecma_value_t this_arg, /**< this ar { if (!ecma_op_is_callable (this_arg)) { - return ecma_raise_type_error (""); + return ecma_raise_type_error (ECMA_ERR_MSG ("")); } else { @@ -231,7 +231,7 @@ ecma_builtin_function_prototype_object_bind (ecma_value_t this_arg, /**< this ar /* 2. */ if (!ecma_op_is_callable (this_arg)) { - ret_value = ecma_raise_type_error (""); + ret_value = ecma_raise_type_error (ECMA_ERR_MSG ("")); } else { @@ -392,7 +392,7 @@ ecma_builtin_function_prototype_dispatch_construct (const ecma_value_t *argument { JERRY_ASSERT (arguments_list_len == 0 || arguments_list_p != NULL); - return ecma_raise_type_error (""); + return ecma_raise_type_error (ECMA_ERR_MSG ("")); } /* ecma_builtin_function_prototype_dispatch_construct */ /** diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-global.c b/jerry-core/ecma/builtin-objects/ecma-builtin-global.c index 95fbe8f3be..620081ae07 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-global.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-global.c @@ -805,7 +805,7 @@ ecma_builtin_global_object_decode_uri_helper (ecma_value_t uri __attr_unused___, if (!lit_read_code_point_from_hex (input_char_p + 1, 2, &decoded_byte)) { - ret_value = ecma_raise_uri_error (""); + ret_value = ecma_raise_uri_error (ECMA_ERR_MSG ("")); break; } @@ -861,7 +861,7 @@ ecma_builtin_global_object_decode_uri_helper (ecma_value_t uri __attr_unused___, if (!lit_read_code_point_from_hex (input_char_p + 1, 2, &decoded_byte)) { - ret_value = ecma_raise_uri_error (""); + ret_value = ecma_raise_uri_error (ECMA_ERR_MSG ("")); break; } @@ -899,7 +899,7 @@ ecma_builtin_global_object_decode_uri_helper (ecma_value_t uri __attr_unused___, } else { - ret_value = ecma_raise_uri_error (""); + ret_value = ecma_raise_uri_error (ECMA_ERR_MSG ("")); break; } @@ -933,7 +933,7 @@ ecma_builtin_global_object_decode_uri_helper (ecma_value_t uri __attr_unused___, if (!is_valid || !lit_is_utf8_string_valid (octets, bytes_count)) { - ret_value = ecma_raise_uri_error (""); + ret_value = ecma_raise_uri_error (ECMA_ERR_MSG ("")); break; } @@ -943,7 +943,7 @@ ecma_builtin_global_object_decode_uri_helper (ecma_value_t uri __attr_unused___, if (lit_is_code_point_utf16_high_surrogate (cp) || lit_is_code_point_utf16_low_surrogate (cp)) { - ret_value = ecma_raise_uri_error (""); + ret_value = ecma_raise_uri_error (ECMA_ERR_MSG ("")); break; } @@ -962,7 +962,7 @@ ecma_builtin_global_object_decode_uri_helper (ecma_value_t uri __attr_unused___, } else { - ret_value = ecma_raise_uri_error (""); + ret_value = ecma_raise_uri_error (ECMA_ERR_MSG ("")); } } @@ -1074,7 +1074,7 @@ ecma_builtin_global_object_encode_uri_helper (ecma_value_t uri, /**< uri argumen if (lit_is_code_point_utf16_low_surrogate (ch)) { - ret_value = ecma_raise_uri_error (""); + ret_value = ecma_raise_uri_error (ECMA_ERR_MSG ("")); break; } @@ -1084,7 +1084,7 @@ ecma_builtin_global_object_encode_uri_helper (ecma_value_t uri, /**< uri argumen { if (input_char_p == input_end_p) { - ret_value = ecma_raise_uri_error (""); + ret_value = ecma_raise_uri_error (ECMA_ERR_MSG ("")); break; } @@ -1098,7 +1098,7 @@ ecma_builtin_global_object_encode_uri_helper (ecma_value_t uri, /**< uri argumen } else { - ret_value = ecma_raise_uri_error (""); + ret_value = ecma_raise_uri_error (ECMA_ERR_MSG ("")); break; } } diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-helpers-date.c b/jerry-core/ecma/builtin-objects/ecma-builtin-helpers-date.c index eb3db57a60..098eb0f404 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-helpers-date.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-helpers-date.c @@ -1337,7 +1337,7 @@ ecma_date_get_primitive_value (ecma_value_t this_arg) /**< this argument */ if (!ecma_is_value_object (this_arg) || ecma_object_get_class_name (ecma_get_object_from_value (this_arg)) != LIT_MAGIC_STRING_DATE_UL) { - ret_value = ecma_raise_type_error ("Incompatible type"); + ret_value = ecma_raise_type_error (ECMA_ERR_MSG ("Incompatible type")); } else { diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-helpers.c b/jerry-core/ecma/builtin-objects/ecma-builtin-helpers.c index 47742656f1..edc900025b 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-helpers.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-helpers.c @@ -165,7 +165,7 @@ ecma_builtin_helper_get_to_locale_string_at_index (ecma_object_t *obj_p, /**< th } else { - ret_value = ecma_raise_type_error (""); + ret_value = ecma_raise_type_error (ECMA_ERR_MSG ("")); } ECMA_FINALIZE (to_locale_value); diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-json.c b/jerry-core/ecma/builtin-objects/ecma-builtin-json.c index bdebff2890..a42957c215 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-json.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-json.c @@ -738,7 +738,7 @@ ecma_builtin_json_parse (ecma_value_t this_arg __attr_unused___, /**< 'this' arg if (ecma_is_value_undefined (final_result)) { - ret_value = ecma_raise_syntax_error (""); + ret_value = ecma_raise_syntax_error (ECMA_ERR_MSG ("")); } else { @@ -1417,7 +1417,7 @@ ecma_builtin_json_object (ecma_object_t *obj_p, /**< the object*/ /* 1. */ if (ecma_has_object_value_in_collection (context_p->occurence_stack_p, obj_value)) { - return ecma_raise_type_error (""); + return ecma_raise_type_error (ECMA_ERR_MSG ("")); } ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY); @@ -1617,7 +1617,7 @@ ecma_builtin_json_array (ecma_object_t *obj_p, /**< the array object*/ /* 1. */ if (ecma_has_object_value_in_collection (context_p->occurence_stack_p, obj_value)) { - return ecma_raise_type_error (""); + return ecma_raise_type_error (ECMA_ERR_MSG ("")); } ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY); diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-number-prototype.c b/jerry-core/ecma/builtin-objects/ecma-builtin-number-prototype.c index 41b9a4811b..c9f9caae3b 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-number-prototype.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-number-prototype.c @@ -120,7 +120,7 @@ ecma_builtin_number_prototype_object_to_string (ecma_value_t this_arg, /**< this if (radix < 2 || radix > 36) { - ret_value = ecma_raise_range_error (""); + ret_value = ecma_raise_range_error (ECMA_ERR_MSG ("")); } else if (radix == 10) { @@ -367,7 +367,7 @@ ecma_builtin_number_prototype_object_value_of (ecma_value_t this_arg) /**< this } } - return ecma_raise_type_error (""); + return ecma_raise_type_error (ECMA_ERR_MSG ("")); } /* ecma_builtin_number_prototype_object_value_of */ /** @@ -393,7 +393,7 @@ ecma_builtin_number_prototype_object_to_fixed (ecma_value_t this_arg, /**< this /* 2. */ if (arg_num <= -1 || arg_num >= 21) { - ret_value = ecma_raise_range_error (""); + ret_value = ecma_raise_range_error (ECMA_ERR_MSG ("")); } else { @@ -597,7 +597,7 @@ ecma_builtin_number_prototype_object_to_exponential (ecma_value_t this_arg, /**< /* 7. */ if (arg_num <= -1.0 || arg_num >= 21.0) { - ret_value = ecma_raise_range_error (""); + ret_value = ecma_raise_range_error (ECMA_ERR_MSG ("")); } else { @@ -825,7 +825,7 @@ ecma_builtin_number_prototype_object_to_precision (ecma_value_t this_arg, /**< t /* 8. */ else if (arg_num < 1.0 || arg_num >= 22.0) { - ret_value = ecma_raise_range_error (""); + ret_value = ecma_raise_range_error (ECMA_ERR_MSG ("")); } else { diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-object-prototype.c b/jerry-core/ecma/builtin-objects/ecma-builtin-object-prototype.c index 7563480eeb..54534cc27b 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-object-prototype.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-object-prototype.c @@ -104,7 +104,7 @@ ecma_builtin_object_prototype_object_to_locale_string (ecma_value_t this_arg) /* /* 3. */ if (!ecma_op_is_callable (to_string_val)) { - return_value = ecma_raise_type_error (""); + return_value = ecma_raise_type_error (ECMA_ERR_MSG ("")); } else { diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-object.c b/jerry-core/ecma/builtin-objects/ecma-builtin-object.c index df371fd45d..9df66f6956 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-object.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-object.c @@ -113,7 +113,7 @@ ecma_builtin_object_object_get_prototype_of (ecma_value_t this_arg __attr_unused /* 1. */ if (!ecma_is_value_object (arg)) { - ret_value = ecma_raise_type_error (""); + ret_value = ecma_raise_type_error (ECMA_ERR_MSG ("")); } else { @@ -153,7 +153,7 @@ ecma_builtin_object_object_get_own_property_names (ecma_value_t this_arg __attr_ if (!ecma_is_value_object (arg)) { /* 1. */ - ret_value = ecma_raise_type_error (""); + ret_value = ecma_raise_type_error (ECMA_ERR_MSG ("")); } else { @@ -183,7 +183,7 @@ ecma_builtin_object_object_seal (ecma_value_t this_arg __attr_unused___, /**< 't // 1. if (!ecma_is_value_object (arg)) { - ret_value = ecma_raise_type_error (""); + ret_value = ecma_raise_type_error (ECMA_ERR_MSG ("")); } else { @@ -255,7 +255,7 @@ ecma_builtin_object_object_freeze (ecma_value_t this_arg __attr_unused___, /**< // 1. if (!ecma_is_value_object (arg)) { - ret_value = ecma_raise_type_error (""); + ret_value = ecma_raise_type_error (ECMA_ERR_MSG ("")); } else { @@ -333,7 +333,7 @@ ecma_builtin_object_object_prevent_extensions (ecma_value_t this_arg __attr_unus if (!ecma_is_value_object (arg)) { - ret_value = ecma_raise_type_error (""); + ret_value = ecma_raise_type_error (ECMA_ERR_MSG ("")); } else { @@ -364,7 +364,7 @@ ecma_builtin_object_object_is_sealed (ecma_value_t this_arg __attr_unused___, /* // 1. if (!ecma_is_value_object (arg)) { - ret_value = ecma_raise_type_error (""); + ret_value = ecma_raise_type_error (ECMA_ERR_MSG ("")); } else { @@ -432,7 +432,7 @@ ecma_builtin_object_object_is_frozen (ecma_value_t this_arg __attr_unused___, /* // 1. if (!ecma_is_value_object (arg)) { - ret_value = ecma_raise_type_error (""); + ret_value = ecma_raise_type_error (ECMA_ERR_MSG ("")); } else { @@ -507,7 +507,7 @@ ecma_builtin_object_object_is_extensible (ecma_value_t this_arg __attr_unused___ if (!ecma_is_value_object (arg)) { - ret_value = ecma_raise_type_error (""); + ret_value = ecma_raise_type_error (ECMA_ERR_MSG ("")); } else { @@ -540,7 +540,7 @@ ecma_builtin_object_object_keys (ecma_value_t this_arg __attr_unused___, /**< 't if (!ecma_is_value_object (arg)) { /* 1. */ - ret_value = ecma_raise_type_error (""); + ret_value = ecma_raise_type_error (ECMA_ERR_MSG ("")); } else { @@ -571,7 +571,7 @@ ecma_builtin_object_object_get_own_property_descriptor (ecma_value_t this_arg __ // 1. if (!ecma_is_value_object (arg1)) { - ret_value = ecma_raise_type_error (""); + ret_value = ecma_raise_type_error (ECMA_ERR_MSG ("")); return ret_value; } @@ -627,7 +627,7 @@ ecma_builtin_object_object_create (ecma_value_t this_arg, /**< 'this' argument * // 1. if (!ecma_is_value_object (arg1) && !ecma_is_value_null (arg1)) { - ret_value = ecma_raise_type_error (""); + ret_value = ecma_raise_type_error (ECMA_ERR_MSG ("")); } else { @@ -682,7 +682,7 @@ ecma_builtin_object_object_define_properties (ecma_value_t this_arg __attr_unuse // 1. if (!ecma_is_value_object (arg1)) { - ret_value = ecma_raise_type_error (""); + ret_value = ecma_raise_type_error (ECMA_ERR_MSG ("")); } else { @@ -788,7 +788,7 @@ ecma_builtin_object_object_define_property (ecma_value_t this_arg __attr_unused_ if (!ecma_is_value_object (arg1)) { - ret_value = ecma_raise_type_error (""); + ret_value = ecma_raise_type_error (ECMA_ERR_MSG ("")); } else { diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-regexp-prototype.c b/jerry-core/ecma/builtin-objects/ecma-builtin-regexp-prototype.c index 32637b1ebc..0ae37b2463 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-regexp-prototype.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-regexp-prototype.c @@ -68,7 +68,7 @@ ecma_builtin_regexp_prototype_compile (ecma_value_t this_arg, /**< this argument if (!ecma_is_value_object (this_arg) || ecma_object_get_class_name (ecma_get_object_from_value (this_arg)) != LIT_MAGIC_STRING_REGEXP_UL) { - ret_value = ecma_raise_type_error ("Incomplete RegExp type"); + ret_value = ecma_raise_type_error (ECMA_ERR_MSG ("Incomplete RegExp type")); } else { @@ -80,7 +80,7 @@ ecma_builtin_regexp_prototype_compile (ecma_value_t this_arg, /**< this argument { if (!ecma_is_value_undefined (flags_arg)) { - ret_value = ecma_raise_type_error ("Invalid argument of RegExp compile."); + ret_value = ecma_raise_type_error (ECMA_ERR_MSG ("Invalid argument of RegExp compile.")); } else { @@ -256,7 +256,7 @@ ecma_builtin_regexp_prototype_exec (ecma_value_t this_arg, /**< this argument */ if (!ecma_is_value_object (this_arg) || ecma_object_get_class_name (ecma_get_object_from_value (this_arg)) != LIT_MAGIC_STRING_REGEXP_UL) { - ret_value = ecma_raise_type_error ("Incomplete RegExp type"); + ret_value = ecma_raise_type_error (ECMA_ERR_MSG ("Incomplete RegExp type")); } else { @@ -364,7 +364,7 @@ ecma_builtin_regexp_prototype_to_string (ecma_value_t this_arg) /**< this argume if (!ecma_is_value_object (this_arg) || ecma_object_get_class_name (ecma_get_object_from_value (this_arg)) != LIT_MAGIC_STRING_REGEXP_UL) { - ret_value = ecma_raise_type_error ("Incomplete RegExp type"); + ret_value = ecma_raise_type_error (ECMA_ERR_MSG ("Incomplete RegExp type")); } else { diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-regexp.c b/jerry-core/ecma/builtin-objects/ecma-builtin-regexp.c index 273520454f..27a5797466 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-regexp.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-regexp.c @@ -89,7 +89,7 @@ ecma_builtin_regexp_dispatch_construct (const ecma_value_t *arguments_list_p, /* } else { - ret_value = ecma_raise_type_error ("Invalid argument of RegExp call."); + ret_value = ecma_raise_type_error (ECMA_ERR_MSG ("Invalid argument of RegExp call.")); } } else diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-string-prototype.c b/jerry-core/ecma/builtin-objects/ecma-builtin-string-prototype.c index fa99a39c56..2bb2c77c40 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-string-prototype.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-string-prototype.c @@ -88,7 +88,7 @@ ecma_builtin_string_prototype_object_to_string (ecma_value_t this_arg) /**< this } } - return ecma_raise_type_error (""); + return ecma_raise_type_error (ECMA_ERR_MSG ("")); } /* ecma_builtin_string_prototype_object_to_string */ /** diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-type-error-thrower.c b/jerry-core/ecma/builtin-objects/ecma-builtin-type-error-thrower.c index 1e6c81070b..a69d04dc51 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-type-error-thrower.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-type-error-thrower.c @@ -56,7 +56,7 @@ ecma_builtin_type_error_thrower_dispatch_call (const ecma_value_t *arguments_lis JERRY_ASSERT (arguments_list_len == 0 || arguments_list_p != NULL); /* The object should throw TypeError */ - return ecma_raise_type_error (""); + return ecma_raise_type_error (ECMA_ERR_MSG ("")); } /* ecma_builtin_type_error_thrower_dispatch_call */ /** @@ -74,7 +74,7 @@ ecma_builtin_type_error_thrower_dispatch_construct (const ecma_value_t *argument JERRY_ASSERT (arguments_list_len == 0 || arguments_list_p != NULL); /* The object is not a constructor */ - return ecma_raise_type_error (""); + return ecma_raise_type_error (ECMA_ERR_MSG ("")); } /* ecma_builtin_type_error_thrower_dispatch_construct */ /** diff --git a/jerry-core/ecma/operations/ecma-array-object.c b/jerry-core/ecma/operations/ecma-array-object.c index 01699ac2b7..b4c666109f 100644 --- a/jerry-core/ecma/operations/ecma-array-object.c +++ b/jerry-core/ecma/operations/ecma-array-object.c @@ -67,7 +67,7 @@ ecma_op_create_array_object (const ecma_value_t *arguments_list_p, /**< list of uint32_t num_uint32 = ecma_number_to_uint32 (*num_p); if (*num_p != ecma_uint32_to_number (num_uint32)) { - return ecma_raise_range_error (""); + return ecma_raise_range_error (ECMA_ERR_MSG ("")); } else { @@ -198,7 +198,7 @@ ecma_op_array_object_define_own_property (ecma_object_t *obj_p, /**< the array o // d. if (ecma_uint32_to_number (new_len_uint32) != new_len_num) { - return ecma_raise_range_error (""); + return ecma_raise_range_error (ECMA_ERR_MSG ("")); } else { diff --git a/jerry-core/ecma/operations/ecma-conversion.c b/jerry-core/ecma/operations/ecma-conversion.c index a5563d8ae2..d859c44c6a 100644 --- a/jerry-core/ecma/operations/ecma-conversion.c +++ b/jerry-core/ecma/operations/ecma-conversion.c @@ -56,7 +56,7 @@ ecma_op_check_object_coercible (ecma_value_t value) /**< ecma value */ if (ecma_is_value_undefined (value) || ecma_is_value_null (value)) { - return ecma_raise_type_error (""); + return ecma_raise_type_error (ECMA_ERR_MSG ("")); } else { @@ -416,7 +416,7 @@ ecma_op_to_object (ecma_value_t value) /**< ecma value */ if (ecma_is_value_undefined (value) || ecma_is_value_null (value)) { - return ecma_raise_type_error (""); + return ecma_raise_type_error (ECMA_ERR_MSG ("")); } else { @@ -576,7 +576,7 @@ ecma_op_to_property_descriptor (ecma_value_t obj_value, /**< object value */ // 1. if (!ecma_is_value_object (obj_value)) { - ret_value = ecma_raise_type_error (""); + ret_value = ecma_raise_type_error (ECMA_ERR_MSG ("")); } else { @@ -723,7 +723,7 @@ ecma_op_to_property_descriptor (ecma_value_t obj_value, /**< object value */ if (!ecma_op_is_callable (get_prop_value) && !ecma_is_value_undefined (get_prop_value)) { - ret_value = ecma_raise_type_error (""); + ret_value = ecma_raise_type_error (ECMA_ERR_MSG ("")); } else { @@ -767,7 +767,7 @@ ecma_op_to_property_descriptor (ecma_value_t obj_value, /**< object value */ if (!ecma_op_is_callable (set_prop_value) && !ecma_is_value_undefined (set_prop_value)) { - ret_value = ecma_raise_type_error (""); + ret_value = ecma_raise_type_error (ECMA_ERR_MSG ("")); } else { @@ -805,7 +805,7 @@ ecma_op_to_property_descriptor (ecma_value_t obj_value, /**< object value */ if (prop_desc.is_value_defined || prop_desc.is_writable_defined) { - ret_value = ecma_raise_type_error (""); + ret_value = ecma_raise_type_error (ECMA_ERR_MSG ("")); } } } diff --git a/jerry-core/ecma/operations/ecma-exceptions.c b/jerry-core/ecma/operations/ecma-exceptions.c index 239d0e6ef2..8951a8c6de 100644 --- a/jerry-core/ecma/operations/ecma-exceptions.c +++ b/jerry-core/ecma/operations/ecma-exceptions.c @@ -141,10 +141,20 @@ ecma_value_t ecma_raise_standard_error (ecma_standard_error_t error_type, /**< error type */ const lit_utf8_byte_t *msg_p) /**< error message */ { - ecma_string_t *error_msg_p = ecma_new_ecma_string_from_utf8 (msg_p, - lit_zt_utf8_string_size (msg_p)); - ecma_object_t *error_obj_p = ecma_new_standard_error_with_message (error_type, error_msg_p); - ecma_deref_ecma_string (error_msg_p); + ecma_object_t *error_obj_p; + + if (msg_p != NULL) + { + ecma_string_t *error_msg_p = ecma_new_ecma_string_from_utf8 (msg_p, + lit_zt_utf8_string_size (msg_p)); + error_obj_p = ecma_new_standard_error_with_message (error_type, error_msg_p); + ecma_deref_ecma_string (error_msg_p); + } + else + { + error_obj_p = ecma_new_standard_error (error_type); + } + return ecma_make_error_obj_value (error_obj_p); } /* ecma_raise_standard_error */ diff --git a/jerry-core/ecma/operations/ecma-exceptions.h b/jerry-core/ecma/operations/ecma-exceptions.h index a237edea87..0e2e169318 100644 --- a/jerry-core/ecma/operations/ecma-exceptions.h +++ b/jerry-core/ecma/operations/ecma-exceptions.h @@ -28,6 +28,12 @@ * @{ */ +#ifdef JERRY_ENABLE_ERROR_MESSAGES +#define ECMA_ERR_MSG(msg) msg +#else /* !JERRY_ENABLE_ERROR_MESSAGES */ +#define ECMA_ERR_MSG(msg) NULL +#endif /* JERRY_ENABLE_ERROR_MESSAGES */ + /** * Native errors. * diff --git a/jerry-core/ecma/operations/ecma-function-object.c b/jerry-core/ecma/operations/ecma-function-object.c index 668da12968..5fc7263d96 100644 --- a/jerry-core/ecma/operations/ecma-function-object.c +++ b/jerry-core/ecma/operations/ecma-function-object.c @@ -483,7 +483,7 @@ ecma_op_function_has_instance (ecma_object_t *func_obj_p, /**< Function object * if (!ecma_is_value_object (prototype_obj_value)) { - ret_value = ecma_raise_type_error (""); + ret_value = ecma_raise_type_error (ECMA_ERR_MSG ("")); } else { @@ -516,7 +516,7 @@ ecma_op_function_has_instance (ecma_object_t *func_obj_p, /**< Function object * else if (ecma_get_object_type (func_obj_p) == ECMA_OBJECT_TYPE_BUILT_IN_FUNCTION || ecma_get_object_type (func_obj_p) == ECMA_OBJECT_TYPE_EXTERNAL_FUNCTION) { - ret_value = ecma_raise_type_error (""); + ret_value = ecma_raise_type_error (ECMA_ERR_MSG ("")); } else { @@ -871,7 +871,7 @@ ecma_op_function_construct (ecma_object_t *func_obj_p, /**< Function object */ /* 2. */ if (!ecma_is_constructor (ecma_make_object_value (target_func_obj_p))) { - ret_value = ecma_raise_type_error (""); + ret_value = ecma_raise_type_error (ECMA_ERR_MSG ("")); } else { @@ -975,7 +975,7 @@ ecma_op_function_declaration (ecma_object_t *lex_env_p, /**< lexical environment } else if (existing_prop_p->flags & ECMA_PROPERTY_FLAG_NAMEDACCESSOR) { - ret_value = ecma_raise_type_error (""); + ret_value = ecma_raise_type_error (ECMA_ERR_MSG ("")); } else { @@ -984,7 +984,7 @@ ecma_op_function_declaration (ecma_object_t *lex_env_p, /**< lexical environment if (!ecma_is_property_writable (existing_prop_p) || !ecma_is_property_enumerable (existing_prop_p)) { - ret_value = ecma_raise_type_error (""); + ret_value = ecma_raise_type_error (ECMA_ERR_MSG ("")); } } diff --git a/jerry-core/ecma/operations/ecma-get-put-value.c b/jerry-core/ecma/operations/ecma-get-put-value.c index 9d953fa813..512a84d87a 100644 --- a/jerry-core/ecma/operations/ecma-get-put-value.c +++ b/jerry-core/ecma/operations/ecma-get-put-value.c @@ -52,7 +52,7 @@ ecma_op_get_value_lex_env_base (ecma_object_t *ref_base_lex_env_p, /**< referenc // 3. if (unlikely (is_unresolvable_reference)) { - return ecma_raise_reference_error (""); + return ecma_raise_reference_error (ECMA_ERR_MSG ("")); } // 5. @@ -175,7 +175,7 @@ ecma_op_put_value_lex_env_base (ecma_object_t *ref_base_lex_env_p, /**< referenc // 3.a. if (is_strict) { - return ecma_raise_reference_error (""); + return ecma_raise_reference_error (ECMA_ERR_MSG ("")); } else { @@ -217,7 +217,7 @@ ecma_reject_put (bool is_throw) /**< Throw flag */ { if (is_throw) { - return ecma_raise_type_error (""); + return ecma_raise_type_error (ECMA_ERR_MSG ("")); } else { diff --git a/jerry-core/ecma/operations/ecma-lex-env.c b/jerry-core/ecma/operations/ecma-lex-env.c index f910c30d59..53be33bfcc 100644 --- a/jerry-core/ecma/operations/ecma-lex-env.c +++ b/jerry-core/ecma/operations/ecma-lex-env.c @@ -212,7 +212,7 @@ ecma_op_set_mutable_binding (ecma_object_t *lex_env_p, /**< lexical environment } else if (is_strict) { - return ecma_raise_type_error (""); + return ecma_raise_type_error (ECMA_ERR_MSG ("")); } } else @@ -269,7 +269,7 @@ ecma_op_get_binding_value (ecma_object_t *lex_env_p, /**< lexical environment */ /* unitialized immutable binding */ if (is_strict) { - return ecma_raise_reference_error (""); + return ecma_raise_reference_error (ECMA_ERR_MSG ("")); } else { @@ -289,7 +289,7 @@ ecma_op_get_binding_value (ecma_object_t *lex_env_p, /**< lexical environment */ { if (is_strict) { - return ecma_raise_reference_error (""); + return ecma_raise_reference_error (ECMA_ERR_MSG ("")); } else { diff --git a/jerry-core/ecma/operations/ecma-objects-general.c b/jerry-core/ecma/operations/ecma-objects-general.c index 87a853818f..0d00edd704 100644 --- a/jerry-core/ecma/operations/ecma-objects-general.c +++ b/jerry-core/ecma/operations/ecma-objects-general.c @@ -42,7 +42,7 @@ ecma_reject (bool is_throw) /**< Throw flag */ { if (is_throw) { - return ecma_raise_type_error (""); + return ecma_raise_type_error (ECMA_ERR_MSG ("")); } else { @@ -270,7 +270,7 @@ ecma_op_general_object_put (ecma_object_t *obj_p, /**< the object */ if (is_throw) { // a. - return ecma_raise_type_error (""); + return ecma_raise_type_error (ECMA_ERR_MSG ("")); } else { @@ -478,7 +478,7 @@ ecma_op_general_object_delete (ecma_object_t *obj_p, /**< the object */ else if (is_throw) { // 4. - return ecma_raise_type_error (""); + return ecma_raise_type_error (ECMA_ERR_MSG ("")); } else { @@ -567,7 +567,7 @@ ecma_op_general_object_default_value (ecma_object_t *obj_p, /**< the object */ ecma_free_value (call_completion); } - return ecma_raise_type_error (""); + return ecma_raise_type_error (ECMA_ERR_MSG ("")); } /* ecma_op_general_object_default_value */ /** diff --git a/jerry-core/ecma/operations/ecma-objects.c b/jerry-core/ecma/operations/ecma-objects.c index ee95f38701..aecd791dcb 100644 --- a/jerry-core/ecma/operations/ecma-objects.c +++ b/jerry-core/ecma/operations/ecma-objects.c @@ -476,7 +476,7 @@ ecma_op_object_has_instance (ecma_object_t *obj_p, /**< the object */ case ECMA_OBJECT_TYPE_STRING: case ECMA_OBJECT_TYPE_ARGUMENTS: { - return ecma_raise_type_error (""); + return ecma_raise_type_error (ECMA_ERR_MSG ("")); } case ECMA_OBJECT_TYPE_FUNCTION: diff --git a/jerry-core/ecma/operations/ecma-regexp-object.c b/jerry-core/ecma/operations/ecma-regexp-object.c index 4048a56442..48a6447cff 100644 --- a/jerry-core/ecma/operations/ecma-regexp-object.c +++ b/jerry-core/ecma/operations/ecma-regexp-object.c @@ -94,7 +94,7 @@ re_parse_regexp_flags (ecma_string_t *flags_str_p, /**< Input string with flags { if (*flags_p & RE_FLAG_GLOBAL) { - ret_value = ecma_raise_syntax_error ("Invalid RegExp flags."); + ret_value = ecma_raise_syntax_error (ECMA_ERR_MSG ("Invalid RegExp flags.")); } *flags_p |= RE_FLAG_GLOBAL; break; @@ -103,7 +103,7 @@ re_parse_regexp_flags (ecma_string_t *flags_str_p, /**< Input string with flags { if (*flags_p & RE_FLAG_IGNORE_CASE) { - ret_value = ecma_raise_syntax_error ("Invalid RegExp flags."); + ret_value = ecma_raise_syntax_error (ECMA_ERR_MSG ("Invalid RegExp flags.")); } *flags_p |= RE_FLAG_IGNORE_CASE; break; @@ -112,14 +112,14 @@ re_parse_regexp_flags (ecma_string_t *flags_str_p, /**< Input string with flags { if (*flags_p & RE_FLAG_MULTILINE) { - ret_value = ecma_raise_syntax_error ("Invalid RegExp flags."); + ret_value = ecma_raise_syntax_error (ECMA_ERR_MSG ("Invalid RegExp flags.")); } *flags_p |= RE_FLAG_MULTILINE; break; } default: { - ret_value = ecma_raise_syntax_error ("Invalid RegExp flags."); + ret_value = ecma_raise_syntax_error (ECMA_ERR_MSG ("Invalid RegExp flags.")); break; } } @@ -1167,7 +1167,7 @@ re_match_regexp (re_matcher_ctx_t *re_ctx_p, /**< RegExp matcher context */ default: { JERRY_DDLOG ("UNKNOWN opcode (%d)!\n", (uint32_t) op); - return ecma_raise_common_error (""); + return ecma_raise_common_error (ECMA_ERR_MSG ("")); } } } @@ -1271,7 +1271,7 @@ ecma_regexp_exec_helper (ecma_value_t regexp_value, /**< RegExp object */ if (bc_p == NULL) { - return ecma_raise_type_error ("Incompatible type"); + return ecma_raise_type_error (ECMA_ERR_MSG ("Incompatible type")); } ecma_string_t *input_string_p = ecma_get_string_from_value (input_string); diff --git a/jerry-core/parser/regexp/re-compiler.c b/jerry-core/parser/regexp/re-compiler.c index cbd2fd9834..0319b34971 100644 --- a/jerry-core/parser/regexp/re-compiler.c +++ b/jerry-core/parser/regexp/re-compiler.c @@ -409,7 +409,7 @@ re_parse_alternative (re_compiler_ctx_t *re_ctx_p, /**< RegExp compiler context if (expect_eof) { - ret_value = ecma_raise_syntax_error ("Unexpected end of paren."); + ret_value = ecma_raise_syntax_error (ECMA_ERR_MSG ("Unexpected end of paren.")); } else { @@ -422,7 +422,7 @@ re_parse_alternative (re_compiler_ctx_t *re_ctx_p, /**< RegExp compiler context { if (!expect_eof) { - ret_value = ecma_raise_syntax_error ("Unexpected end of pattern."); + ret_value = ecma_raise_syntax_error (ECMA_ERR_MSG ("Unexpected end of pattern.")); } else { @@ -434,7 +434,7 @@ re_parse_alternative (re_compiler_ctx_t *re_ctx_p, /**< RegExp compiler context } default: { - ret_value = ecma_raise_syntax_error ("Unexpected RegExp token."); + ret_value = ecma_raise_syntax_error (ECMA_ERR_MSG ("Unexpected RegExp token.")); break; } } @@ -564,7 +564,7 @@ re_compile_bytecode (const re_compiled_code_t **out_bytecode_p, /**< [out] point /* 2. Check for invalid backreference */ if (re_ctx.highest_backref >= re_ctx.num_of_captures) { - ret_value = ecma_raise_syntax_error ("Invalid backreference.\n"); + ret_value = ecma_raise_syntax_error (ECMA_ERR_MSG ("Invalid backreference.\n")); } else { diff --git a/jerry-core/parser/regexp/re-parser.c b/jerry-core/parser/regexp/re-parser.c index 60c876a765..ff368ca939 100644 --- a/jerry-core/parser/regexp/re-parser.c +++ b/jerry-core/parser/regexp/re-parser.c @@ -164,7 +164,7 @@ re_parse_iterator (re_parser_ctx_t *parser_ctx_p, /**< RegExp parser context */ { if (parser_ctx_p->input_curr_p >= parser_ctx_p->input_end_p) { - return ecma_raise_syntax_error ("invalid quantifier"); + return ecma_raise_syntax_error (ECMA_ERR_MSG ("invalid quantifier")); } ch = *parser_ctx_p->input_curr_p++; @@ -173,7 +173,7 @@ re_parse_iterator (re_parser_ctx_t *parser_ctx_p, /**< RegExp parser context */ { if (digits >= ECMA_NUMBER_MAX_DIGITS) { - return ecma_raise_syntax_error ("RegExp quantifier error: too many digits."); + return ecma_raise_syntax_error (ECMA_ERR_MSG ("RegExp quantifier error: too many digits.")); } digits++; qmin = qmin * 10 + lit_char_hex_to_int (ch); @@ -182,19 +182,19 @@ re_parse_iterator (re_parser_ctx_t *parser_ctx_p, /**< RegExp parser context */ { if (qmax != RE_ITERATOR_INFINITE) { - return ecma_raise_syntax_error ("RegExp quantifier error: double comma."); + return ecma_raise_syntax_error (ECMA_ERR_MSG ("RegExp quantifier error: double comma.")); } if (parser_ctx_p->input_curr_p >= parser_ctx_p->input_end_p) { - return ecma_raise_syntax_error ("invalid quantifier"); + return ecma_raise_syntax_error (ECMA_ERR_MSG ("invalid quantifier")); } if (*parser_ctx_p->input_curr_p == LIT_CHAR_RIGHT_BRACE) { if (digits == 0) { - return ecma_raise_syntax_error ("RegExp quantifier error: missing digits."); + return ecma_raise_syntax_error (ECMA_ERR_MSG ("RegExp quantifier error: missing digits.")); } parser_ctx_p->input_curr_p++; @@ -210,7 +210,7 @@ re_parse_iterator (re_parser_ctx_t *parser_ctx_p, /**< RegExp parser context */ { if (digits == 0) { - return ecma_raise_syntax_error ("RegExp quantifier error: missing digits."); + return ecma_raise_syntax_error (ECMA_ERR_MSG ("RegExp quantifier error: missing digits.")); } if (qmax != RE_ITERATOR_INFINITE) @@ -228,7 +228,7 @@ re_parse_iterator (re_parser_ctx_t *parser_ctx_p, /**< RegExp parser context */ } else { - return ecma_raise_syntax_error ("RegExp quantifier error: unknown char."); + return ecma_raise_syntax_error (ECMA_ERR_MSG ("RegExp quantifier error: unknown char.")); } } @@ -245,7 +245,7 @@ re_parse_iterator (re_parser_ctx_t *parser_ctx_p, /**< RegExp parser context */ if (re_token_p->qmin > re_token_p->qmax) { - ret_value = ecma_raise_syntax_error ("RegExp quantifier error: qmin > qmax."); + ret_value = ecma_raise_syntax_error (ECMA_ERR_MSG ("RegExp quantifier error: qmin > qmax.")); } return ret_value; @@ -329,7 +329,7 @@ re_parse_char_class (re_parser_ctx_t *parser_ctx_p, /**< number of classes */ { if (parser_ctx_p->input_curr_p >= parser_ctx_p->input_end_p) { - return ecma_raise_syntax_error ("invalid character class, end of string"); + return ecma_raise_syntax_error (ECMA_ERR_MSG ("invalid character class, end of string")); } uint32_t ch = lit_utf8_read_next (&parser_ctx_p->input_curr_p); @@ -346,7 +346,7 @@ re_parse_char_class (re_parser_ctx_t *parser_ctx_p, /**< number of classes */ { if (parser_ctx_p->input_curr_p >= parser_ctx_p->input_end_p) { - return ecma_raise_syntax_error ("invalid character class, end of string after '-'"); + return ecma_raise_syntax_error (ECMA_ERR_MSG ("invalid character class, end of string after '-'")); } if (start != RE_CHAR_UNDEF @@ -361,7 +361,7 @@ re_parse_char_class (re_parser_ctx_t *parser_ctx_p, /**< number of classes */ { if (parser_ctx_p->input_curr_p >= parser_ctx_p->input_end_p) { - return ecma_raise_syntax_error ("invalid character class, end of string after '\\'"); + return ecma_raise_syntax_error (ECMA_ERR_MSG ("invalid character class, end of string after '\\'")); } ch = *parser_ctx_p->input_curr_p++; @@ -416,7 +416,7 @@ re_parse_char_class (re_parser_ctx_t *parser_ctx_p, /**< number of classes */ if (!lit_read_code_point_from_hex (parser_ctx_p->input_curr_p, 2, &code_point)) { - return ecma_raise_syntax_error ("invalid character class, end of string after '\\x'"); + return ecma_raise_syntax_error (ECMA_ERR_MSG ("invalid character class, end of string after '\\x'")); } parser_ctx_p->input_curr_p += 2; @@ -428,7 +428,7 @@ re_parse_char_class (re_parser_ctx_t *parser_ctx_p, /**< number of classes */ if (!lit_read_code_point_from_hex (parser_ctx_p->input_curr_p, 4, &code_point)) { - return ecma_raise_syntax_error ("invalid character class, end of string after '\\u'"); + return ecma_raise_syntax_error (ECMA_ERR_MSG ("invalid character class, end of string after '\\u'")); } parser_ctx_p->input_curr_p += 4; @@ -514,7 +514,7 @@ re_parse_char_class (re_parser_ctx_t *parser_ctx_p, /**< number of classes */ { if (is_range) { - return ecma_raise_syntax_error ("invalid character class, invalid range"); + return ecma_raise_syntax_error (ECMA_ERR_MSG ("invalid character class, invalid range")); } else { @@ -531,7 +531,7 @@ re_parse_char_class (re_parser_ctx_t *parser_ctx_p, /**< number of classes */ { if (start > ch) { - return ecma_raise_syntax_error ("invalid character class, wrong order"); + return ecma_raise_syntax_error (ECMA_ERR_MSG ("invalid character class, wrong order")); } else { @@ -606,7 +606,7 @@ re_parse_next_token (re_parser_ctx_t *parser_ctx_p, /**< RegExp parser context * { if (parser_ctx_p->input_curr_p >= parser_ctx_p->input_end_p) { - return ecma_raise_syntax_error ("invalid regular experssion"); + return ecma_raise_syntax_error (ECMA_ERR_MSG ("invalid regular experssion")); } out_token_p->type = RE_TOK_CHAR; @@ -671,7 +671,7 @@ re_parse_next_token (re_parser_ctx_t *parser_ctx_p, /**< RegExp parser context * if (!lit_read_code_point_from_hex (parser_ctx_p->input_curr_p, 2, &code_point)) { - return ecma_raise_syntax_error ("decode error"); + return ecma_raise_syntax_error (ECMA_ERR_MSG ("decode error")); } parser_ctx_p->input_curr_p += 2; @@ -684,7 +684,7 @@ re_parse_next_token (re_parser_ctx_t *parser_ctx_p, /**< RegExp parser context * if (!lit_read_code_point_from_hex (parser_ctx_p->input_curr_p, 4, &code_point)) { - return ecma_raise_syntax_error ("decode error"); + return ecma_raise_syntax_error (ECMA_ERR_MSG ("decode error")); } parser_ctx_p->input_curr_p += 4; @@ -727,7 +727,7 @@ re_parse_next_token (re_parser_ctx_t *parser_ctx_p, /**< RegExp parser context * if (parser_ctx_p->input_curr_p < parser_ctx_p->input_end_p && lit_char_is_decimal_digit (*parser_ctx_p->input_curr_p)) { - return ecma_raise_syntax_error ("RegExp escape pattern error."); + return ecma_raise_syntax_error (ECMA_ERR_MSG ("RegExp escape pattern error.")); } out_token_p->value = LIT_UNICODE_CODE_POINT_NULL; @@ -749,7 +749,7 @@ re_parse_next_token (re_parser_ctx_t *parser_ctx_p, /**< RegExp parser context * { if (index >= RE_MAX_RE_DECESC_DIGITS) { - ret_value = ecma_raise_syntax_error ("RegExp escape pattern error: decimal escape too long."); + ret_value = ecma_raise_syntax_error (ECMA_ERR_MSG ("RegExp escape error: decimal escape too long.")); return ret_value; } if (parser_ctx_p->input_curr_p >= parser_ctx_p->input_end_p) @@ -823,7 +823,7 @@ re_parse_next_token (re_parser_ctx_t *parser_ctx_p, /**< RegExp parser context * { if (parser_ctx_p->input_curr_p >= parser_ctx_p->input_end_p) { - return ecma_raise_syntax_error ("Unterminated group"); + return ecma_raise_syntax_error (ECMA_ERR_MSG ("Unterminated group")); } if (*parser_ctx_p->input_curr_p == LIT_CHAR_QUESTION) @@ -831,7 +831,7 @@ re_parse_next_token (re_parser_ctx_t *parser_ctx_p, /**< RegExp parser context * parser_ctx_p->input_curr_p++; if (parser_ctx_p->input_curr_p >= parser_ctx_p->input_end_p) { - return ecma_raise_syntax_error ("Invalid group"); + return ecma_raise_syntax_error (ECMA_ERR_MSG ("Invalid group")); } ch = *parser_ctx_p->input_curr_p++; @@ -853,7 +853,7 @@ re_parse_next_token (re_parser_ctx_t *parser_ctx_p, /**< RegExp parser context * } else { - return ecma_raise_syntax_error ("Invalid group"); + return ecma_raise_syntax_error (ECMA_ERR_MSG ("Invalid group")); } } else @@ -875,7 +875,7 @@ re_parse_next_token (re_parser_ctx_t *parser_ctx_p, /**< RegExp parser context * if (parser_ctx_p->input_curr_p >= parser_ctx_p->input_end_p) { - return ecma_raise_syntax_error ("invalid character class"); + return ecma_raise_syntax_error (ECMA_ERR_MSG ("invalid character class")); } if (*parser_ctx_p->input_curr_p == LIT_CHAR_CIRCUMFLEX) @@ -891,7 +891,7 @@ re_parse_next_token (re_parser_ctx_t *parser_ctx_p, /**< RegExp parser context * case LIT_CHAR_PLUS: case LIT_CHAR_LEFT_BRACE: { - return ecma_raise_syntax_error ("Invalid RegExp token."); + return ecma_raise_syntax_error (ECMA_ERR_MSG ("Invalid RegExp token.")); } case LIT_CHAR_NULL: { diff --git a/jerry-core/vm/opcodes-ecma-relational.c b/jerry-core/vm/opcodes-ecma-relational.c index 546c7125a9..5b43061e9d 100644 --- a/jerry-core/vm/opcodes-ecma-relational.c +++ b/jerry-core/vm/opcodes-ecma-relational.c @@ -195,7 +195,7 @@ opfunc_instanceof (ecma_value_t left_value, /**< left value */ if (!ecma_is_value_object (right_value)) { - ret_value = ecma_raise_type_error (""); + ret_value = ecma_raise_type_error (ECMA_ERR_MSG ("")); } else { @@ -229,7 +229,7 @@ opfunc_in (ecma_value_t left_value, /**< left value */ if (!ecma_is_value_object (right_value)) { - ret_value = ecma_raise_type_error (""); + ret_value = ecma_raise_type_error (ECMA_ERR_MSG ("")); } else { diff --git a/jerry-core/vm/vm.c b/jerry-core/vm/vm.c index 2ea46bcc6a..f7c995bc9f 100644 --- a/jerry-core/vm/vm.c +++ b/jerry-core/vm/vm.c @@ -70,7 +70,7 @@ vm_op_get_value (ecma_value_t object, /**< base object */ { if (unlikely (ecma_is_value_undefined (object) || ecma_is_value_null (object))) { - return ecma_raise_type_error (""); + return ecma_raise_type_error (ECMA_ERR_MSG ("")); } ecma_value_t completion_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY); @@ -368,7 +368,7 @@ opfunc_call (vm_frame_ctx_t *frame_ctx_p) /**< frame context */ if (!ecma_op_is_callable (func_value)) { - completion_value = ecma_raise_type_error (""); + completion_value = ecma_raise_type_error (ECMA_ERR_MSG ("")); } else { @@ -426,7 +426,7 @@ opfunc_construct (vm_frame_ctx_t *frame_ctx_p) /**< frame context */ if (!ecma_is_constructor (constructor_value)) { - completion_value = ecma_raise_type_error (""); + completion_value = ecma_raise_type_error (ECMA_ERR_MSG ("")); } else { @@ -496,7 +496,7 @@ enum } \ else \ { \ - last_completion_value = ecma_raise_reference_error (""); \ + last_completion_value = ecma_raise_reference_error (ECMA_ERR_MSG ("")); \ } \ \ ecma_deref_ecma_string (name_p); \ @@ -1151,7 +1151,7 @@ vm_loop (vm_frame_ctx_t *frame_ctx_p) /**< frame context */ } else { - last_completion_value = ecma_raise_reference_error (""); + last_completion_value = ecma_raise_reference_error (ECMA_ERR_MSG ("")); } if (ecma_is_value_error (last_completion_value)) @@ -1329,7 +1329,7 @@ vm_loop (vm_frame_ctx_t *frame_ctx_p) /**< frame context */ } case VM_OC_THROW_REFERENCE_ERROR: { - last_completion_value = ecma_raise_reference_error (""); + last_completion_value = ecma_raise_reference_error (ECMA_ERR_MSG ("")); goto error; } case VM_OC_EVAL: diff --git a/tests/jerry/date-tostring.js b/tests/jerry/date-tostring.js index 3d120ea9e4..cba699c7d7 100644 --- a/tests/jerry/date-tostring.js +++ b/tests/jerry/date-tostring.js @@ -31,7 +31,6 @@ try catch (e) { assert (e instanceof TypeError); - assert (e.message === "Incompatible type"); } var date = new Date(0); @@ -56,7 +55,6 @@ try catch (e) { assert (e instanceof TypeError); - assert (e.message === "Incompatible type"); } assert (new Date (NaN).toTimeString () == "Invalid Date"); @@ -72,7 +70,6 @@ try catch (e) { assert (e instanceof TypeError); - assert (e.message === "Incompatible type"); } assert (new Date ("2015-07-16").toISOString () == "2015-07-16T00:00:00.000Z"); @@ -106,7 +103,6 @@ try catch (e) { assert (e instanceof TypeError); - assert (e.message === "Incompatible type"); } assert (new Date (NaN).toUTCString () == "Invalid Date"); @@ -121,7 +117,6 @@ try catch (e) { assert (e instanceof TypeError); - assert (e.message === "Incompatible type"); } assert (new Date (NaN).toJSON () == null); diff --git a/tests/jerry/regression-test-issue-245.js b/tests/jerry/regression-test-issue-245.js index 001ce1487a..e903c23684 100644 --- a/tests/jerry/regression-test-issue-245.js +++ b/tests/jerry/regression-test-issue-245.js @@ -21,5 +21,4 @@ try catch (e) { assert (e instanceof SyntaxError); - assert (e.message === "Unexpected end of paren."); } diff --git a/tests/jerry/regression-test-issue-316.js b/tests/jerry/regression-test-issue-316.js index 1fe728b0b9..eba9b11f6b 100644 --- a/tests/jerry/regression-test-issue-316.js +++ b/tests/jerry/regression-test-issue-316.js @@ -20,7 +20,6 @@ try { catch (e) { assert (e instanceof TypeError); - assert (e.message === "Incomplete RegExp type"); } try { @@ -30,7 +29,6 @@ try { catch (e) { assert (e instanceof TypeError); - assert (e.message === "Incomplete RegExp type"); } try { @@ -40,5 +38,4 @@ try { catch (e) { assert (e instanceof TypeError); - assert (e.message === "Incomplete RegExp type"); }