mirror of
https://github.com/jerryscript-project/jerryscript.git
synced 2025-12-15 16:29:21 +00:00
Print unhandled errors in REPL mode
JerryScript-DCO-1.0-Signed-off-by: Dániel Bátyai dbatyai@inf.u-szeged.hu
This commit is contained in:
parent
ff185dc57e
commit
e191794118
@ -515,9 +515,7 @@ jerry_api_convert_api_value_to_ecma_value (ecma_value_t *out_value_p, /**< [out]
|
||||
* Convert completion of 'eval' to API value and completion code
|
||||
*
|
||||
* Note:
|
||||
* if the output value contains string / object, it should be freed
|
||||
* with jerry_api_release_string / jerry_api_release_object,
|
||||
* just when it becomes unnecessary.
|
||||
* The value returned in 'retval_p' should be freed with jerry_api_release_value
|
||||
*
|
||||
* @return completion code
|
||||
*/
|
||||
@ -526,22 +524,9 @@ jerry_api_convert_eval_completion_to_retval (jerry_api_value_t *retval_p, /**< [
|
||||
ecma_value_t completion) /**< completion of 'eval'-mode
|
||||
* code execution */
|
||||
{
|
||||
jerry_completion_code_t ret_code;
|
||||
jerry_api_convert_ecma_value_to_api_value (retval_p, completion);
|
||||
|
||||
if (!ecma_is_value_error (completion))
|
||||
{
|
||||
jerry_api_convert_ecma_value_to_api_value (retval_p, completion);
|
||||
|
||||
ret_code = JERRY_COMPLETION_CODE_OK;
|
||||
}
|
||||
else
|
||||
{
|
||||
jerry_api_convert_ecma_value_to_api_value (retval_p, ecma_make_simple_value (ECMA_SIMPLE_VALUE_UNDEFINED));
|
||||
|
||||
ret_code = JERRY_COMPLETION_CODE_UNHANDLED_EXCEPTION;
|
||||
}
|
||||
|
||||
return ret_code;
|
||||
return (ecma_is_value_error (completion)) ? JERRY_COMPLETION_CODE_UNHANDLED_EXCEPTION : JERRY_COMPLETION_CODE_OK;
|
||||
} /* jerry_api_convert_eval_completion_to_retval */
|
||||
|
||||
/**
|
||||
|
||||
21
main-unix.c
21
main-unix.c
@ -537,7 +537,7 @@ main (int argc,
|
||||
|
||||
printf ("%s", prompt);
|
||||
|
||||
// input a line
|
||||
/* Read a line */
|
||||
while (true)
|
||||
{
|
||||
if (fread (source_buffer_tail, 1, 1, stdin) != 1 && len == 0)
|
||||
@ -556,23 +556,16 @@ main (int argc,
|
||||
|
||||
if (len > 0)
|
||||
{
|
||||
// evaluate the line
|
||||
/* Evaluate the line */
|
||||
jerry_api_value_t ret_val;
|
||||
ret_code = jerry_api_eval (buffer, len, false, false, &ret_val);
|
||||
|
||||
if (ret_code == JERRY_COMPLETION_CODE_OK)
|
||||
/* Print return value */
|
||||
const jerry_api_value_t args[] = { ret_val };
|
||||
jerry_api_value_t ret_val_print;
|
||||
if (jerry_api_call_function (print_function.u.v_object, NULL, &ret_val_print, args, 1))
|
||||
{
|
||||
// print return value
|
||||
const jerry_api_value_t args[] = {ret_val};
|
||||
jerry_api_value_t ret_val_print;
|
||||
if (jerry_api_call_function (print_function.u.v_object, NULL, &ret_val_print, args, 1))
|
||||
{
|
||||
jerry_api_release_value (&ret_val_print);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
printf ("JERRY_COMPLETION_CODE_UNHANDLED_EXCEPTION\n");
|
||||
jerry_api_release_value (&ret_val_print);
|
||||
}
|
||||
|
||||
jerry_api_release_value (&ret_val);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user