Don't use messages for errors by default

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
This commit is contained in:
László Langó
2016-03-07 16:04:24 +01:00
parent 81d4c97a3a
commit ab26d57841
37 changed files with 166 additions and 148 deletions
@@ -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
{
+6 -6
View File
@@ -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 (""));
}
}
}
+14 -4
View File
@@ -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 */
@@ -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.
*
@@ -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 (""));
}
}
@@ -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
{
+3 -3
View File
@@ -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
{
@@ -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 */
/**
+1 -1
View File
@@ -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:
@@ -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);