Skip to content

Commit 42523bd

Browse files
authored
Use external string when raising error (#4881)
JerryScript-DCO-1.0-Signed-off-by: Csaba Repasi [email protected]
1 parent 4cbc77d commit 42523bd

File tree

5 files changed

+18
-15
lines changed

5 files changed

+18
-15
lines changed

jerry-core/ecma/operations/ecma-exceptions.c

+10-10
Original file line numberDiff line numberDiff line change
@@ -300,14 +300,14 @@ ecma_get_error_type (ecma_object_t *error_object_p) /**< possible error object *
300300
*/
301301
ecma_value_t
302302
ecma_raise_standard_error (jerry_error_t error_type, /**< error type */
303-
const char *msg_p) /**< error message */
303+
ecma_error_msg_t msg) /**< error message */
304304
{
305305
ecma_object_t *error_obj_p;
306-
const lit_utf8_byte_t *str_p = (lit_utf8_byte_t *) msg_p;
306+
const lit_utf8_byte_t *str_p = (lit_utf8_byte_t *) ecma_get_error_msg (msg);
307307

308-
if (msg_p != NULL)
308+
if (msg != ECMA_ERR_EMPTY)
309309
{
310-
ecma_string_t *error_msg_p = ecma_new_ecma_string_from_utf8 (str_p, lit_zt_utf8_string_size (str_p));
310+
ecma_string_t *error_msg_p = ecma_new_ecma_external_string_from_cesu8 (str_p, ecma_get_error_size (msg), NULL);
311311
error_obj_p = ecma_new_standard_error (error_type, error_msg_p);
312312
ecma_deref_ecma_string (error_msg_p);
313313
}
@@ -417,7 +417,7 @@ ecma_raise_standard_error_with_format (jerry_error_t error_type, /**< error type
417417
ecma_value_t
418418
ecma_raise_common_error (ecma_error_msg_t msg) /**< error message */
419419
{
420-
return ecma_raise_standard_error (JERRY_ERROR_COMMON, ecma_get_error_msg (msg));
420+
return ecma_raise_standard_error (JERRY_ERROR_COMMON, msg);
421421
} /* ecma_raise_common_error */
422422

423423
/**
@@ -431,7 +431,7 @@ ecma_raise_common_error (ecma_error_msg_t msg) /**< error message */
431431
ecma_value_t
432432
ecma_raise_range_error (ecma_error_msg_t msg) /**< error message */
433433
{
434-
return ecma_raise_standard_error (JERRY_ERROR_RANGE, ecma_get_error_msg (msg));
434+
return ecma_raise_standard_error (JERRY_ERROR_RANGE, msg);
435435
} /* ecma_raise_range_error */
436436

437437
/**
@@ -445,7 +445,7 @@ ecma_raise_range_error (ecma_error_msg_t msg) /**< error message */
445445
ecma_value_t
446446
ecma_raise_reference_error (ecma_error_msg_t msg) /**< error message */
447447
{
448-
return ecma_raise_standard_error (JERRY_ERROR_REFERENCE, ecma_get_error_msg (msg));
448+
return ecma_raise_standard_error (JERRY_ERROR_REFERENCE, msg);
449449
} /* ecma_raise_reference_error */
450450

451451
/**
@@ -459,7 +459,7 @@ ecma_raise_reference_error (ecma_error_msg_t msg) /**< error message */
459459
ecma_value_t
460460
ecma_raise_syntax_error (ecma_error_msg_t msg) /**< error message */
461461
{
462-
return ecma_raise_standard_error (JERRY_ERROR_SYNTAX, ecma_get_error_msg (msg));
462+
return ecma_raise_standard_error (JERRY_ERROR_SYNTAX, msg);
463463
} /* ecma_raise_syntax_error */
464464

465465
/**
@@ -473,7 +473,7 @@ ecma_raise_syntax_error (ecma_error_msg_t msg) /**< error message */
473473
ecma_value_t
474474
ecma_raise_type_error (ecma_error_msg_t msg) /**< error message */
475475
{
476-
return ecma_raise_standard_error (JERRY_ERROR_TYPE, ecma_get_error_msg (msg));
476+
return ecma_raise_standard_error (JERRY_ERROR_TYPE, msg);
477477
} /* ecma_raise_type_error */
478478

479479
/**
@@ -487,7 +487,7 @@ ecma_raise_type_error (ecma_error_msg_t msg) /**< error message */
487487
ecma_value_t
488488
ecma_raise_uri_error (ecma_error_msg_t msg) /**< error message */
489489
{
490-
return ecma_raise_standard_error (JERRY_ERROR_URI, ecma_get_error_msg (msg));
490+
return ecma_raise_standard_error (JERRY_ERROR_URI, msg);
491491
} /* ecma_raise_uri_error */
492492

493493
#if (JERRY_STACK_LIMIT != 0)

jerry-core/ecma/operations/ecma-exceptions.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ ecma_object_t *ecma_new_standard_error (jerry_error_t error_type, ecma_string_t
3232
#if JERRY_ERROR_MESSAGES
3333
ecma_value_t ecma_raise_standard_error_with_format (jerry_error_t error_type, const char *msg_p, ...);
3434
#endif /* JERRY_ERROR_MESSAGES */
35-
ecma_value_t ecma_raise_standard_error (jerry_error_t error_type, const char *msg_p);
35+
ecma_value_t ecma_raise_standard_error (jerry_error_t error_type, ecma_error_msg_t msg);
3636
ecma_value_t ecma_raise_common_error (ecma_error_msg_t msg);
3737
ecma_value_t ecma_raise_range_error (ecma_error_msg_t msg);
3838
ecma_value_t ecma_raise_reference_error (ecma_error_msg_t msg);

jerry-core/parser/js/js-parser.c

+3-2
Original file line numberDiff line numberDiff line change
@@ -2505,8 +2505,9 @@ parser_parse_source (void *source_p, /**< source code */
25052505
}
25062506
else
25072507
{
2508-
err_str_p =
2509-
ecma_new_ecma_string_from_utf8 (parser_get_error_utf8 (context.error), parser_get_error_size (context.error));
2508+
err_str_p = ecma_new_ecma_external_string_from_cesu8 (parser_get_error_utf8 (context.error),
2509+
parser_get_error_size (context.error),
2510+
NULL);
25102511
}
25112512
ecma_value_t err_str_val = ecma_make_string_value (err_str_p);
25122513
ecma_value_t line_str_val = ecma_make_uint32_value (context.token.line);

tests/unit-core/test-to-integer.c

+2-1
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
#include "jerryscript.h"
1818

1919
#include "ecma-conversion.h"
20+
#include "ecma-errors.h"
2021
#include "ecma-exceptions.h"
2122
#include "ecma-globals.h"
2223
#include "ecma-helpers.h"
@@ -49,7 +50,7 @@ main (void)
4950
TEST_ASSERT (num == 123);
5051

5152
/* 2 */
52-
ecma_value_t error = ecma_raise_standard_error (JERRY_ERROR_TYPE, "I am a neat little error message");
53+
ecma_value_t error = ecma_raise_standard_error (JERRY_ERROR_TYPE, ECMA_ERR_INVALID_ARRAY_LENGTH);
5354

5455
result = ecma_op_to_integer (error, &num);
5556

tests/unit-core/test-to-length.c

+2-1
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
#include "jerryscript.h"
1919

2020
#include "ecma-conversion.h"
21+
#include "ecma-errors.h"
2122
#include "ecma-exceptions.h"
2223
#include "ecma-globals.h"
2324
#include "ecma-helpers-number.h"
@@ -51,7 +52,7 @@ main (void)
5152
TEST_ASSERT (num == 123);
5253

5354
/* 1, 3 */
54-
ecma_value_t error_throw = ecma_raise_standard_error (JERRY_ERROR_TYPE, "I'm an error");
55+
ecma_value_t error_throw = ecma_raise_standard_error (JERRY_ERROR_TYPE, ECMA_ERR_INVALID_ARRAY_LENGTH);
5556

5657
result = ecma_op_to_length (error_throw, &num);
5758

0 commit comments

Comments
 (0)