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:
Dániel Bátyai 2016-04-14 14:01:47 +02:00 committed by bzsolt
parent ff185dc57e
commit e191794118
2 changed files with 10 additions and 32 deletions

View File

@ -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 */
/**

View File

@ -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);