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:
+12
-3
@@ -57,7 +57,9 @@ typedef enum
|
|||||||
ERR_MEMORY = -10,
|
ERR_MEMORY = -10,
|
||||||
ERR_SYSCALL = -11,
|
ERR_SYSCALL = -11,
|
||||||
ERR_UNHANDLED_EXCEPTION = -12,
|
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;
|
} jerry_status_t;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -111,9 +113,16 @@ extern void jerry_ref_unused_variables (int unused_variables_follow, ...);
|
|||||||
do \
|
do \
|
||||||
{ \
|
{ \
|
||||||
JERRY_ASSERT (false); \
|
JERRY_ASSERT (false); \
|
||||||
jerry_exit (ERR_GENERAL); \
|
jerry_exit (ERR_FAILED_INTERNAL_ASSERTION); \
|
||||||
} while (0)
|
} 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(...) \
|
#define JERRY_UNIMPLEMENTED_REF_UNUSED_VARS(...) \
|
||||||
do \
|
do \
|
||||||
{ \
|
{ \
|
||||||
|
|||||||
@@ -101,15 +101,22 @@ jerry_exit (jerry_status_t code) /**< status code */
|
|||||||
__printf ("ERR_UNHANDLED_EXCEPTION\n");
|
__printf ("ERR_UNHANDLED_EXCEPTION\n");
|
||||||
break;
|
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;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* The failed assertion is 'Return code is zero' */
|
|
||||||
jerry_assert_fail ("Return code is zero", __FILE__, __LINE__);
|
|
||||||
}
|
}
|
||||||
#endif /* !JERRY_NDEBUG */
|
#endif /* !JERRY_NDEBUG */
|
||||||
|
|
||||||
|
|||||||
@@ -27,6 +27,6 @@ jerry_assert_fail (const char *assertion, /**< assertion condition string */
|
|||||||
__printf ("Assertion '%s' failed at %s:%u\n",
|
__printf ("Assertion '%s' failed at %s:%u\n",
|
||||||
assertion, file, line);
|
assertion, file, line);
|
||||||
|
|
||||||
__exit (-ERR_GENERAL);
|
__exit (-ERR_FAILED_INTERNAL_ASSERTION);
|
||||||
} /* jerry_assert_fail */
|
} /* jerry_assert_fail */
|
||||||
|
|
||||||
|
|||||||
@@ -24,5 +24,5 @@ jerry_assert_fail (const char *assertion __unused, /**< assertion condition stri
|
|||||||
const char *file __unused, /**< file name */
|
const char *file __unused, /**< file name */
|
||||||
const uint32_t line __unused) /** line */
|
const uint32_t line __unused) /** line */
|
||||||
{
|
{
|
||||||
__exit (-ERR_GENERAL);
|
__exit (-ERR_FAILED_INTERNAL_ASSERTION);
|
||||||
} /* jerry_assert_fail */
|
} /* jerry_assert_fail */
|
||||||
|
|||||||
+1
-1
@@ -217,7 +217,7 @@ main (int argc __unused,
|
|||||||
|
|
||||||
bool is_success = jerry_run (source_p, source_size, parse_only, show_opcodes, print_mem_stats);
|
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
|
#endif
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user