Splitting ERR_GENERAL error code in ERR_FAILED_INTERNAL_ASSERTION and ERR_UNIMPLEMENTED_CASE; introducing ERR_FAILED_ASSERTION_IN_SCRIPT error code for handling non-zero script's exit values.

This commit is contained in:
Ruben Ayrapetyan 2014-09-18 13:59:51 +04:00
parent f402e42d2f
commit 30008f8dc5
5 changed files with 27 additions and 11 deletions

View File

@ -57,7 +57,9 @@ typedef enum
ERR_MEMORY = -10,
ERR_SYSCALL = -11,
ERR_UNHANDLED_EXCEPTION = -12,
ERR_GENERAL = -255
ERR_UNIMPLEMENTED_CASE = -118,
ERR_FAILED_ASSERTION_IN_SCRIPT = -119,
ERR_FAILED_INTERNAL_ASSERTION = -120,
} jerry_status_t;
/**
@ -111,9 +113,16 @@ extern void jerry_ref_unused_variables (int unused_variables_follow, ...);
do \
{ \
JERRY_ASSERT (false); \
jerry_exit (ERR_GENERAL); \
jerry_exit (ERR_FAILED_INTERNAL_ASSERTION); \
} while (0)
#define JERRY_UNIMPLEMENTED() JERRY_UNREACHABLE ()
#define JERRY_UNIMPLEMENTED() \
do \
{ \
JERRY_ASSERT (false); \
jerry_exit (ERR_UNIMPLEMENTED_CASE); \
} while (0)
#define JERRY_UNIMPLEMENTED_REF_UNUSED_VARS(...) \
do \
{ \

View File

@ -101,15 +101,22 @@ jerry_exit (jerry_status_t code) /**< status code */
__printf ("ERR_UNHANDLED_EXCEPTION\n");
break;
}
case ERR_GENERAL:
case ERR_UNIMPLEMENTED_CASE:
{
__printf ("ERR_GENERAL\n");
__printf ("ERR_UNIMPLEMENTED_CASE\n");
break;
}
case ERR_FAILED_ASSERTION_IN_SCRIPT:
{
__printf ("ERR_FAILED_ASSERTION_IN_SCRIPT\n");
break;
}
case ERR_FAILED_INTERNAL_ASSERTION:
{
__printf ("ERR_FAILED_INTERNAL_ASSERTION\n");
break;
}
}
/* The failed assertion is 'Return code is zero' */
jerry_assert_fail ("Return code is zero", __FILE__, __LINE__);
}
#endif /* !JERRY_NDEBUG */

View File

@ -27,6 +27,6 @@ jerry_assert_fail (const char *assertion, /**< assertion condition string */
__printf ("Assertion '%s' failed at %s:%u\n",
assertion, file, line);
__exit (-ERR_GENERAL);
__exit (-ERR_FAILED_INTERNAL_ASSERTION);
} /* jerry_assert_fail */

View File

@ -24,5 +24,5 @@ jerry_assert_fail (const char *assertion __unused, /**< assertion condition stri
const char *file __unused, /**< file name */
const uint32_t line __unused) /** line */
{
__exit (-ERR_GENERAL);
__exit (-ERR_FAILED_INTERNAL_ASSERTION);
} /* jerry_assert_fail */

View File

@ -217,7 +217,7 @@ main (int argc __unused,
bool is_success = jerry_run (source_p, source_size, parse_only, show_opcodes, print_mem_stats);
return is_success ? 0 : 1;
jerry_exit (is_success ? ERR_OK : ERR_FAILED_ASSERTION_IN_SCRIPT);
}
#endif