Remove printf calls from jerry core

Related issue: #964

JerryScript-DCO-1.0-Signed-off-by: László Langó llango.u-szeged@partner.samsung.com
This commit is contained in:
László Langó
2016-07-14 13:25:18 +02:00
parent 12916c6c55
commit a004375e1d
9 changed files with 166 additions and 139 deletions
@@ -51,7 +51,7 @@
/** /**
* The implementation-defined Global object's 'print' routine * The implementation-defined Global object's 'print' routine
* *
* The routine converts all of its arguments to strings and outputs them using 'printf'. * The routine converts all of its arguments to strings and outputs them using 'jerry_port_console'.
* *
* Code points, with except of NUL character, that are representable with one utf8-byte * Code points, with except of NUL character, that are representable with one utf8-byte
* are outputted as is, using "%c" format argument, and other code points are outputted as "\uhhll", * are outputted as is, using "%c" format argument, and other code points are outputted as "\uhhll",
@@ -68,8 +68,6 @@ ecma_builtin_global_object_print (ecma_value_t this_arg, /**< this argument */
JERRY_UNUSED (this_arg); JERRY_UNUSED (this_arg);
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY); ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
/* TODO: Move the 'print' routine out of engine core. */
for (ecma_length_t arg_index = 0; for (ecma_length_t arg_index = 0;
ecma_is_value_empty (ret_value) && arg_index < args_number; ecma_is_value_empty (ret_value) && arg_index < args_number;
arg_index++) arg_index++)
@@ -97,11 +95,11 @@ ecma_builtin_global_object_print (ecma_value_t this_arg, /**< this argument */
if (code_unit == LIT_CHAR_NULL) if (code_unit == LIT_CHAR_NULL)
{ {
printf ("\\u0000"); jerry_port_console ("\\u0000");
} }
else if (code_unit <= LIT_UTF8_1_BYTE_CODE_POINT_MAX) else if (code_unit <= LIT_UTF8_1_BYTE_CODE_POINT_MAX)
{ {
printf ("%c", (char) code_unit); jerry_port_console ("%c", (char) code_unit);
} }
else else
{ {
@@ -115,13 +113,13 @@ ecma_builtin_global_object_print (ecma_value_t this_arg, /**< this argument */
0, 0,
JERRY_BITSINBYTE); JERRY_BITSINBYTE);
printf ("\\u%02x%02x", byte_high, byte_low); jerry_port_console ("\\u%02x%02x", byte_high, byte_low);
} }
} }
if (arg_index < args_number - 1) if (arg_index < args_number - 1)
{ {
printf (" "); jerry_port_console (" ");
} }
JMEM_FINALIZE_LOCAL_ARRAY (utf8_str_p); JMEM_FINALIZE_LOCAL_ARRAY (utf8_str_p);
@@ -129,7 +127,7 @@ ecma_builtin_global_object_print (ecma_value_t this_arg, /**< this argument */
ECMA_FINALIZE (str_value); ECMA_FINALIZE (str_value);
} }
printf ("\n"); jerry_port_console ("\n");
if (ecma_is_value_empty (ret_value)) if (ecma_is_value_empty (ret_value))
{ {
+22 -21
View File
@@ -609,27 +609,28 @@ jmem_heap_stats_print (void)
{ {
jmem_heap_stats_t *heap_stats = &JERRY_CONTEXT (jmem_heap_stats); jmem_heap_stats_t *heap_stats = &JERRY_CONTEXT (jmem_heap_stats);
printf ("Heap stats:\n" jerry_port_log (JERRY_LOG_LEVEL_DEBUG,
" Heap size = %zu bytes\n" "Heap stats:\n"
" Allocated = %zu bytes\n" " Heap size = %zu bytes\n"
" Waste = %zu bytes\n" " Allocated = %zu bytes\n"
" Peak allocated = %zu bytes\n" " Waste = %zu bytes\n"
" Peak waste = %zu bytes\n" " Peak allocated = %zu bytes\n"
" Skip-ahead ratio = %zu.%04zu\n" " Peak waste = %zu bytes\n"
" Average alloc iteration = %zu.%04zu\n" " Skip-ahead ratio = %zu.%04zu\n"
" Average free iteration = %zu.%04zu\n" " Average alloc iteration = %zu.%04zu\n"
"\n", " Average free iteration = %zu.%04zu\n"
heap_stats->size, "\n",
heap_stats->allocated_bytes, heap_stats->size,
heap_stats->waste_bytes, heap_stats->allocated_bytes,
heap_stats->peak_allocated_bytes, heap_stats->waste_bytes,
heap_stats->peak_waste_bytes, heap_stats->peak_allocated_bytes,
heap_stats->skip_count / heap_stats->nonskip_count, heap_stats->peak_waste_bytes,
heap_stats->skip_count % heap_stats->nonskip_count * 10000 / heap_stats->nonskip_count, heap_stats->skip_count / heap_stats->nonskip_count,
heap_stats->alloc_iter_count / heap_stats->alloc_count, heap_stats->skip_count % heap_stats->nonskip_count * 10000 / heap_stats->nonskip_count,
heap_stats->alloc_iter_count % heap_stats->alloc_count * 10000 / heap_stats->alloc_count, heap_stats->alloc_iter_count / heap_stats->alloc_count,
heap_stats->free_iter_count / heap_stats->free_count, heap_stats->alloc_iter_count % heap_stats->alloc_count * 10000 / heap_stats->alloc_count,
heap_stats->free_iter_count % heap_stats->free_count * 10000 / heap_stats->free_count); heap_stats->free_iter_count / heap_stats->free_count,
heap_stats->free_iter_count % heap_stats->free_count * 10000 / heap_stats->free_count);
} /* jmem_heap_stats_print */ } /* jmem_heap_stats_print */
/** /**
+13 -12
View File
@@ -204,18 +204,19 @@ jmem_pools_stats_print (void)
{ {
jmem_pools_stats_t *pools_stats = &JERRY_CONTEXT (jmem_pools_stats); jmem_pools_stats_t *pools_stats = &JERRY_CONTEXT (jmem_pools_stats);
printf ("Pools stats:\n" jerry_port_log (JERRY_LOG_LEVEL_DEBUG,
" Chunk size: %zu\n" "Pools stats:\n"
" Pool chunks: %zu\n" " Chunk size: %zu\n"
" Peak pool chunks: %zu\n" " Pool chunks: %zu\n"
" Free chunks: %zu\n" " Peak pool chunks: %zu\n"
" Pool reuse ratio: %zu.%04zu\n", " Free chunks: %zu\n"
JMEM_POOL_CHUNK_SIZE, " Pool reuse ratio: %zu.%04zu\n",
pools_stats->pools_count, JMEM_POOL_CHUNK_SIZE,
pools_stats->peak_pools_count, pools_stats->pools_count,
pools_stats->free_chunks, pools_stats->peak_pools_count,
pools_stats->reused_count / pools_stats->new_alloc_count, pools_stats->free_chunks,
pools_stats->reused_count % pools_stats->new_alloc_count * 10000 / pools_stats->new_alloc_count); pools_stats->reused_count / pools_stats->new_alloc_count,
pools_stats->reused_count % pools_stats->new_alloc_count * 10000 / pools_stats->new_alloc_count);
} /* jmem_pools_stats_print */ } /* jmem_pools_stats_print */
/** /**
+28 -13
View File
@@ -1,4 +1,5 @@
/* Copyright 2014-2016 Samsung Electronics Co., Ltd. /* Copyright 2014-2016 Samsung Electronics Co., Ltd.
* Copyright 2016 University of Szeged.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@@ -33,13 +34,13 @@ void __noreturn
jerry_fatal (jerry_fatal_code_t code) /**< status code */ jerry_fatal (jerry_fatal_code_t code) /**< status code */
{ {
#ifndef JERRY_NDEBUG #ifndef JERRY_NDEBUG
printf ("Error: "); jerry_port_log (JERRY_LOG_LEVEL_ERROR, "Error: ");
switch (code) switch (code)
{ {
case ERR_OUT_OF_MEMORY: case ERR_OUT_OF_MEMORY:
{ {
printf ("ERR_OUT_OF_MEMORY\n"); jerry_port_log (JERRY_LOG_LEVEL_ERROR, "ERR_OUT_OF_MEMORY\n");
break; break;
} }
case ERR_SYSCALL: case ERR_SYSCALL:
@@ -49,17 +50,17 @@ jerry_fatal (jerry_fatal_code_t code) /**< status code */
} }
case ERR_REF_COUNT_LIMIT: case ERR_REF_COUNT_LIMIT:
{ {
printf ("ERR_REF_COUNT_LIMIT\n"); jerry_port_log (JERRY_LOG_LEVEL_ERROR, "ERR_REF_COUNT_LIMIT\n");
break; break;
} }
case ERR_UNIMPLEMENTED_CASE: case ERR_UNIMPLEMENTED_CASE:
{ {
printf ("ERR_UNIMPLEMENTED_CASE\n"); jerry_port_log (JERRY_LOG_LEVEL_ERROR, "ERR_UNIMPLEMENTED_CASE\n");
break; break;
} }
case ERR_FAILED_INTERNAL_ASSERTION: case ERR_FAILED_INTERNAL_ASSERTION:
{ {
printf ("ERR_FAILED_INTERNAL_ASSERTION\n"); jerry_port_log (JERRY_LOG_LEVEL_ERROR, "ERR_FAILED_INTERNAL_ASSERTION\n");
break; break;
} }
} }
@@ -83,8 +84,12 @@ jerry_assert_fail (const char *assertion, /**< assertion condition string */
const uint32_t line) /**< line */ const uint32_t line) /**< line */
{ {
#ifndef JERRY_NDEBUG #ifndef JERRY_NDEBUG
printf ("ICE: Assertion '%s' failed at %s(%s):%lu.\n", jerry_port_log (JERRY_LOG_LEVEL_ERROR,
assertion, file, function, (unsigned long) line); "ICE: Assertion '%s' failed at %s(%s):%lu.\n",
assertion,
file,
function,
(unsigned long) line);
#else /* JERRY_NDEBUG */ #else /* JERRY_NDEBUG */
(void) assertion; (void) assertion;
(void) file; (void) file;
@@ -106,7 +111,11 @@ jerry_unreachable (const char *comment, /**< comment to unreachable mark if exis
const uint32_t line) /**< line */ const uint32_t line) /**< line */
{ {
#ifndef JERRY_NDEBUG #ifndef JERRY_NDEBUG
printf ("ICE: Unreachable control path at %s(%s):%lu was executed", file, function, (unsigned long) line); jerry_port_log (JERRY_LOG_LEVEL_ERROR,
"ICE: Unreachable control path at %s(%s):%lu was executed",
file,
function,
(unsigned long) line);
#else /* JERRY_NDEBUG */ #else /* JERRY_NDEBUG */
(void) file; (void) file;
(void) function; (void) function;
@@ -115,9 +124,10 @@ jerry_unreachable (const char *comment, /**< comment to unreachable mark if exis
if (comment != NULL) if (comment != NULL)
{ {
printf ("(%s)", comment); jerry_port_log (JERRY_LOG_LEVEL_ERROR, "(%s)", comment);
} }
printf (".\n");
jerry_port_log (JERRY_LOG_LEVEL_ERROR, ".\n");
jerry_fatal (ERR_FAILED_INTERNAL_ASSERTION); jerry_fatal (ERR_FAILED_INTERNAL_ASSERTION);
} /* jerry_unreachable */ } /* jerry_unreachable */
@@ -133,7 +143,11 @@ jerry_unimplemented (const char *comment, /**< comment to unimplemented mark if
const uint32_t line) /**< line */ const uint32_t line) /**< line */
{ {
#ifndef JERRY_NDEBUG #ifndef JERRY_NDEBUG
printf ("SORRY: Unimplemented case at %s(%s):%lu was executed", file, function, (unsigned long) line); jerry_port_log (JERRY_LOG_LEVEL_ERROR,
"SORRY: Unimplemented case at %s(%s):%lu was executed",
file,
function,
(unsigned long) line);
#else /* JERRY_NDEBUG */ #else /* JERRY_NDEBUG */
(void) file; (void) file;
(void) function; (void) function;
@@ -142,9 +156,10 @@ jerry_unimplemented (const char *comment, /**< comment to unimplemented mark if
if (comment != NULL) if (comment != NULL)
{ {
printf ("(%s)", comment); jerry_port_log (JERRY_LOG_LEVEL_ERROR, "(%s)", comment);
} }
printf (".\n");
jerry_port_log (JERRY_LOG_LEVEL_ERROR, ".\n");
jerry_fatal (ERR_UNIMPLEMENTED_CASE); jerry_fatal (ERR_UNIMPLEMENTED_CASE);
} /* jerry_unimplemented */ } /* jerry_unimplemented */
+10 -10
View File
@@ -59,7 +59,7 @@ util_print_chars (const uint8_t *char_p, /**< character pointer */
{ {
while (size > 0) while (size > 0)
{ {
printf ("%c", *char_p++); jerry_port_log (JERRY_LOG_LEVEL_DEBUG, "%c", *char_p++);
size--; size--;
} }
} /* util_print_chars */ } /* util_print_chars */
@@ -73,7 +73,7 @@ util_print_number (ecma_number_t num_p) /**< number to print */
lit_utf8_byte_t str_buf[ECMA_MAX_CHARS_IN_STRINGIFIED_NUMBER]; lit_utf8_byte_t str_buf[ECMA_MAX_CHARS_IN_STRINGIFIED_NUMBER];
lit_utf8_size_t str_size = ecma_number_to_utf8_string (num_p, str_buf, sizeof (str_buf)); lit_utf8_size_t str_size = ecma_number_to_utf8_string (num_p, str_buf, sizeof (str_buf));
str_buf[str_size] = 0; str_buf[str_size] = 0;
printf ("%s", str_buf); jerry_port_log (JERRY_LOG_LEVEL_DEBUG, "%s", str_buf);
} /* util_print_number */ } /* util_print_number */
/** /**
@@ -86,22 +86,22 @@ util_print_literal (lexer_literal_t *literal_p) /**< literal */
{ {
if (literal_p->status_flags & LEXER_FLAG_VAR) if (literal_p->status_flags & LEXER_FLAG_VAR)
{ {
printf ("var_ident("); jerry_port_log (JERRY_LOG_LEVEL_DEBUG, "var_ident(");
} }
else else
{ {
printf ("ident("); jerry_port_log (JERRY_LOG_LEVEL_DEBUG, "ident(");
} }
util_print_chars (literal_p->u.char_p, literal_p->prop.length); util_print_chars (literal_p->u.char_p, literal_p->prop.length);
} }
else if (literal_p->type == LEXER_FUNCTION_LITERAL) else if (literal_p->type == LEXER_FUNCTION_LITERAL)
{ {
printf ("function"); jerry_port_log (JERRY_LOG_LEVEL_DEBUG, "function");
return; return;
} }
else if (literal_p->type == LEXER_STRING_LITERAL) else if (literal_p->type == LEXER_STRING_LITERAL)
{ {
printf ("string("); jerry_port_log (JERRY_LOG_LEVEL_DEBUG, "string(");
util_print_chars (literal_p->u.char_p, literal_p->prop.length); util_print_chars (literal_p->u.char_p, literal_p->prop.length);
} }
else if (literal_p->type == LEXER_NUMBER_LITERAL) else if (literal_p->type == LEXER_NUMBER_LITERAL)
@@ -110,21 +110,21 @@ util_print_literal (lexer_literal_t *literal_p) /**< literal */
JERRY_ASSERT (ECMA_STRING_GET_CONTAINER (value_p) == ECMA_STRING_LITERAL_NUMBER); JERRY_ASSERT (ECMA_STRING_GET_CONTAINER (value_p) == ECMA_STRING_LITERAL_NUMBER);
printf ("number("); jerry_port_log (JERRY_LOG_LEVEL_DEBUG, "number(");
util_print_number (ecma_get_number_from_value (value_p->u.lit_number)); util_print_number (ecma_get_number_from_value (value_p->u.lit_number));
} }
else if (literal_p->type == LEXER_REGEXP_LITERAL) else if (literal_p->type == LEXER_REGEXP_LITERAL)
{ {
printf ("regexp"); jerry_port_log (JERRY_LOG_LEVEL_DEBUG, "regexp");
return; return;
} }
else else
{ {
printf ("unknown"); jerry_port_log (JERRY_LOG_LEVEL_DEBUG, "unknown");
return; return;
} }
printf (")"); jerry_port_log (JERRY_LOG_LEVEL_DEBUG, ")");
} /* util_print_literal */ } /* util_print_literal */
#endif /* PARSER_DUMP_BYTE_CODE */ #endif /* PARSER_DUMP_BYTE_CODE */
+1 -1
View File
@@ -1609,7 +1609,7 @@ parser_parse_statements (parser_context_t *context_p) /**< context */
if (context_p->is_show_opcodes if (context_p->is_show_opcodes
&& switch_to_strict_mode) && switch_to_strict_mode)
{ {
printf (" Note: switch to strict mode\n\n"); jerry_port_log (JERRY_LOG_LEVEL_DEBUG, " Note: switch to strict mode\n\n");
} }
#endif /* PARSER_DUMP_BYTE_CODE */ #endif /* PARSER_DUMP_BYTE_CODE */
+14 -10
View File
@@ -170,13 +170,13 @@ parser_flush_cbc (parser_context_t *context_p) /**< context */
name_p = cbc_ext_names[PARSER_GET_EXT_OPCODE (context_p->last_cbc_opcode)]; name_p = cbc_ext_names[PARSER_GET_EXT_OPCODE (context_p->last_cbc_opcode)];
} }
printf (" [%3d] %s", (int) context_p->stack_depth, name_p); jerry_port_log (JERRY_LOG_LEVEL_DEBUG, " [%3d] %s", (int) context_p->stack_depth, name_p);
if (flags & (CBC_HAS_LITERAL_ARG | CBC_HAS_LITERAL_ARG2)) if (flags & (CBC_HAS_LITERAL_ARG | CBC_HAS_LITERAL_ARG2))
{ {
uint16_t literal_index = context_p->last_cbc.literal_index; uint16_t literal_index = context_p->last_cbc.literal_index;
lexer_literal_t *literal_p = PARSER_GET_LITERAL (literal_index); lexer_literal_t *literal_p = PARSER_GET_LITERAL (literal_index);
printf (" idx:%d->", literal_index); jerry_port_log (JERRY_LOG_LEVEL_DEBUG, " idx:%d->", literal_index);
util_print_literal (literal_p); util_print_literal (literal_p);
} }
@@ -184,7 +184,7 @@ parser_flush_cbc (parser_context_t *context_p) /**< context */
{ {
uint16_t literal_index = context_p->last_cbc.value; uint16_t literal_index = context_p->last_cbc.value;
lexer_literal_t *literal_p = PARSER_GET_LITERAL (literal_index); lexer_literal_t *literal_p = PARSER_GET_LITERAL (literal_index);
printf (" idx:%d->", literal_index); jerry_port_log (JERRY_LOG_LEVEL_DEBUG, " idx:%d->", literal_index);
util_print_literal (literal_p); util_print_literal (literal_p);
if (!(flags & CBC_HAS_LITERAL_ARG)) if (!(flags & CBC_HAS_LITERAL_ARG))
@@ -192,17 +192,17 @@ parser_flush_cbc (parser_context_t *context_p) /**< context */
literal_index = context_p->last_cbc.third_literal_index; literal_index = context_p->last_cbc.third_literal_index;
lexer_literal_t *literal_p = PARSER_GET_LITERAL (literal_index); lexer_literal_t *literal_p = PARSER_GET_LITERAL (literal_index);
printf (" idx:%d->", literal_index); jerry_port_log (JERRY_LOG_LEVEL_DEBUG, " idx:%d->", literal_index);
util_print_literal (literal_p); util_print_literal (literal_p);
} }
} }
if (flags & CBC_HAS_BYTE_ARG) if (flags & CBC_HAS_BYTE_ARG)
{ {
printf (" byte_arg:%d", (int) context_p->last_cbc.value); jerry_port_log (JERRY_LOG_LEVEL_DEBUG, " byte_arg:%d", (int) context_p->last_cbc.value);
} }
printf ("\n"); jerry_port_log (JERRY_LOG_LEVEL_DEBUG, "\n");
} }
#endif /* PARSER_DUMP_BYTE_CODE */ #endif /* PARSER_DUMP_BYTE_CODE */
@@ -327,7 +327,11 @@ parser_emit_cbc_push_number (parser_context_t *context_p, /**< context */
real_value = -real_value; real_value = -real_value;
} }
printf (" [%3d] %s number:%d\n", (int) context_p->stack_depth, cbc_names[opcode], real_value); jerry_port_log (JERRY_LOG_LEVEL_DEBUG,
" [%3d] %s number:%d\n",
(int) context_p->stack_depth,
cbc_names[opcode],
real_value);
} }
#endif /* PARSER_DUMP_BYTE_CODE */ #endif /* PARSER_DUMP_BYTE_CODE */
@@ -391,11 +395,11 @@ parser_emit_cbc_forward_branch (parser_context_t *context_p, /**< context */
{ {
if (extra_byte_code_increase == 0) if (extra_byte_code_increase == 0)
{ {
printf (" [%3d] %s\n", (int) context_p->stack_depth, cbc_names[opcode]); jerry_port_log (JERRY_LOG_LEVEL_DEBUG, " [%3d] %s\n", (int) context_p->stack_depth, cbc_names[opcode]);
} }
else else
{ {
printf (" [%3d] %s\n", (int) context_p->stack_depth, cbc_ext_names[opcode]); jerry_port_log (JERRY_LOG_LEVEL_DEBUG, " [%3d] %s\n", (int) context_p->stack_depth, cbc_ext_names[opcode]);
} }
} }
#endif /* PARSER_DUMP_BYTE_CODE */ #endif /* PARSER_DUMP_BYTE_CODE */
@@ -506,7 +510,7 @@ parser_emit_cbc_backward_branch (parser_context_t *context_p, /**< context */
#ifdef PARSER_DUMP_BYTE_CODE #ifdef PARSER_DUMP_BYTE_CODE
if (context_p->is_show_opcodes) if (context_p->is_show_opcodes)
{ {
printf (" [%3d] %s\n", (int) context_p->stack_depth, name); jerry_port_log (JERRY_LOG_LEVEL_DEBUG, " [%3d] %s\n", (int) context_p->stack_depth, name);
} }
#endif /* PARSER_DUMP_BYTE_CODE */ #endif /* PARSER_DUMP_BYTE_CODE */
+47 -43
View File
@@ -873,35 +873,35 @@ parse_print_literal (ecma_compiled_code_t *compiled_code_p, /**< compiled code *
if (literal_index == const_literal_end) if (literal_index == const_literal_end)
{ {
printf (" idx:%d(self)->function", literal_index); jerry_port_log (JERRY_LOG_LEVEL_DEBUG, " idx:%d(self)->function", literal_index);
break; break;
} }
JERRY_ASSERT (literal_index < argument_end); JERRY_ASSERT (literal_index < argument_end);
printf (" idx:%d(arg)->undefined", literal_index); jerry_port_log (JERRY_LOG_LEVEL_DEBUG, " idx:%d(arg)->undefined", literal_index);
break; break;
} }
if (literal_p->prop.index == literal_index if (literal_p->prop.index == literal_index
&& literal_p->type != LEXER_UNUSED_LITERAL) && literal_p->type != LEXER_UNUSED_LITERAL)
{ {
printf (" idx:%d", literal_index); jerry_port_log (JERRY_LOG_LEVEL_DEBUG, " idx:%d", literal_index);
if (literal_index < argument_end) if (literal_index < argument_end)
{ {
printf ("(arg)->"); jerry_port_log (JERRY_LOG_LEVEL_DEBUG, "(arg)->");
} }
else if (literal_index < register_end) else if (literal_index < register_end)
{ {
printf ("(reg)->"); jerry_port_log (JERRY_LOG_LEVEL_DEBUG, "(reg)->");
} }
else if (literal_index < ident_end) else if (literal_index < ident_end)
{ {
printf ("(ident)->"); jerry_port_log (JERRY_LOG_LEVEL_DEBUG, "(ident)->");
} }
else else
{ {
printf ("(lit)->"); jerry_port_log (JERRY_LOG_LEVEL_DEBUG, "(lit)->");
} }
util_print_literal (literal_p); util_print_literal (literal_p);
@@ -946,14 +946,14 @@ parse_print_define_vars (ecma_compiled_code_t *compiled_code_p, /**< compiled co
PARSER_READ_IDENTIFIER_INDEX (identifier_end); PARSER_READ_IDENTIFIER_INDEX (identifier_end);
printf (" from: %d to: %d\n", identifier_index, identifier_end); jerry_port_log (JERRY_LOG_LEVEL_DEBUG, " from: %d to: %d\n", identifier_index, identifier_end);
while (identifier_index <= identifier_end) while (identifier_index <= identifier_end)
{ {
printf (" "); jerry_port_log (JERRY_LOG_LEVEL_DEBUG, " ");
parse_print_literal (compiled_code_p, identifier_index, literal_pool_p); parse_print_literal (compiled_code_p, identifier_index, literal_pool_p);
identifier_index++; identifier_index++;
printf ("\n"); jerry_port_log (JERRY_LOG_LEVEL_DEBUG, "\n");
} }
return byte_code_p; return byte_code_p;
@@ -977,21 +977,21 @@ parse_print_initialize_vars (ecma_compiled_code_t *compiled_code_p, /**< compile
PARSER_READ_IDENTIFIER_INDEX (identifier_index); PARSER_READ_IDENTIFIER_INDEX (identifier_index);
PARSER_READ_IDENTIFIER_INDEX (identifier_end); PARSER_READ_IDENTIFIER_INDEX (identifier_end);
printf (" from: %d to: %d\n", identifier_index, identifier_end); jerry_port_log (JERRY_LOG_LEVEL_DEBUG, " from: %d to: %d\n", identifier_index, identifier_end);
while (identifier_index <= identifier_end) while (identifier_index <= identifier_end)
{ {
uint16_t literal_index; uint16_t literal_index;
printf (" "); jerry_port_log (JERRY_LOG_LEVEL_DEBUG, " ");
parse_print_literal (compiled_code_p, identifier_index, literal_pool_p); parse_print_literal (compiled_code_p, identifier_index, literal_pool_p);
printf (" ="); jerry_port_log (JERRY_LOG_LEVEL_DEBUG, " =");
PARSER_READ_IDENTIFIER_INDEX (literal_index); PARSER_READ_IDENTIFIER_INDEX (literal_index);
parse_print_literal (compiled_code_p, literal_index, literal_pool_p); parse_print_literal (compiled_code_p, literal_index, literal_pool_p);
identifier_index++; identifier_index++;
printf ("\n"); jerry_port_log (JERRY_LOG_LEVEL_DEBUG, "\n");
} }
return byte_code_p; return byte_code_p;
@@ -1039,48 +1039,50 @@ parse_print_final_cbc (ecma_compiled_code_t *compiled_code_p, /**< compiled code
literal_end = args->literal_end; literal_end = args->literal_end;
} }
printf ("\nFinal byte code dump:\n\n Maximum stack depth: %d\n Flags: [", (int) stack_limit); jerry_port_log (JERRY_LOG_LEVEL_DEBUG,
"\nFinal byte code dump:\n\n Maximum stack depth: %d\n Flags: [",
(int) stack_limit);
if (!(compiled_code_p->status_flags & CBC_CODE_FLAGS_FULL_LITERAL_ENCODING)) if (!(compiled_code_p->status_flags & CBC_CODE_FLAGS_FULL_LITERAL_ENCODING))
{ {
printf ("small_lit_enc"); jerry_port_log (JERRY_LOG_LEVEL_DEBUG, "small_lit_enc");
encoding_limit = 255; encoding_limit = 255;
encoding_delta = 0xfe01; encoding_delta = 0xfe01;
} }
else else
{ {
printf ("full_lit_enc"); jerry_port_log (JERRY_LOG_LEVEL_DEBUG, "full_lit_enc");
encoding_limit = 128; encoding_limit = 128;
encoding_delta = 0x8000; encoding_delta = 0x8000;
} }
if (compiled_code_p->status_flags & CBC_CODE_FLAGS_UINT16_ARGUMENTS) if (compiled_code_p->status_flags & CBC_CODE_FLAGS_UINT16_ARGUMENTS)
{ {
printf (",uint16_arguments"); jerry_port_log (JERRY_LOG_LEVEL_DEBUG, ",uint16_arguments");
} }
if (compiled_code_p->status_flags & CBC_CODE_FLAGS_STRICT_MODE) if (compiled_code_p->status_flags & CBC_CODE_FLAGS_STRICT_MODE)
{ {
printf (",strict_mode"); jerry_port_log (JERRY_LOG_LEVEL_DEBUG, ",strict_mode");
} }
if (compiled_code_p->status_flags & CBC_CODE_FLAGS_ARGUMENTS_NEEDED) if (compiled_code_p->status_flags & CBC_CODE_FLAGS_ARGUMENTS_NEEDED)
{ {
printf (",arguments_needed"); jerry_port_log (JERRY_LOG_LEVEL_DEBUG, ",arguments_needed");
} }
if (compiled_code_p->status_flags & CBC_CODE_FLAGS_LEXICAL_ENV_NOT_NEEDED) if (compiled_code_p->status_flags & CBC_CODE_FLAGS_LEXICAL_ENV_NOT_NEEDED)
{ {
printf (",no_lexical_env"); jerry_port_log (JERRY_LOG_LEVEL_DEBUG, ",no_lexical_env");
} }
printf ("]\n"); jerry_port_log (JERRY_LOG_LEVEL_DEBUG, "]\n");
printf (" Argument range end: %d\n", (int) argument_end); jerry_port_log (JERRY_LOG_LEVEL_DEBUG, " Argument range end: %d\n", (int) argument_end);
printf (" Register range end: %d\n", (int) register_end); jerry_port_log (JERRY_LOG_LEVEL_DEBUG, " Register range end: %d\n", (int) register_end);
printf (" Identifier range end: %d\n", (int) ident_end); jerry_port_log (JERRY_LOG_LEVEL_DEBUG, " Identifier range end: %d\n", (int) ident_end);
printf (" Const literal range end: %d\n", (int) const_literal_end); jerry_port_log (JERRY_LOG_LEVEL_DEBUG, " Const literal range end: %d\n", (int) const_literal_end);
printf (" Literal range end: %d\n\n", (int) literal_end); jerry_port_log (JERRY_LOG_LEVEL_DEBUG, " Literal range end: %d\n\n", (int) literal_end);
byte_code_start_p = (uint8_t *) compiled_code_p; byte_code_start_p = (uint8_t *) compiled_code_p;
@@ -1110,7 +1112,7 @@ parse_print_final_cbc (ecma_compiled_code_t *compiled_code_p, /**< compiled code
if (opcode != CBC_EXT_OPCODE) if (opcode != CBC_EXT_OPCODE)
{ {
flags = cbc_flags[opcode]; flags = cbc_flags[opcode];
printf (" %3d : %s", (int) cbc_offset, cbc_names[opcode]); jerry_port_log (JERRY_LOG_LEVEL_DEBUG, " %3d : %s", (int) cbc_offset, cbc_names[opcode]);
byte_code_p++; byte_code_p++;
if (opcode == CBC_INITIALIZE_VARS) if (opcode == CBC_INITIALIZE_VARS)
@@ -1136,14 +1138,14 @@ parse_print_final_cbc (ecma_compiled_code_t *compiled_code_p, /**< compiled code
if (opcode == CBC_PUSH_NUMBER_POS_BYTE) if (opcode == CBC_PUSH_NUMBER_POS_BYTE)
{ {
int value = *byte_code_p++; int value = *byte_code_p++;
printf (" number:%d\n", value + 1); jerry_port_log (JERRY_LOG_LEVEL_DEBUG, " number:%d\n", value + 1);
continue; continue;
} }
if (opcode == CBC_PUSH_NUMBER_NEG_BYTE) if (opcode == CBC_PUSH_NUMBER_NEG_BYTE)
{ {
int value = *byte_code_p++; int value = *byte_code_p++;
printf (" number:%d\n", -(value + 1)); jerry_port_log (JERRY_LOG_LEVEL_DEBUG, " number:%d\n", -(value + 1));
continue; continue;
} }
} }
@@ -1151,7 +1153,7 @@ parse_print_final_cbc (ecma_compiled_code_t *compiled_code_p, /**< compiled code
{ {
ext_opcode = (cbc_ext_opcode_t) byte_code_p[1]; ext_opcode = (cbc_ext_opcode_t) byte_code_p[1];
flags = cbc_ext_flags[ext_opcode]; flags = cbc_ext_flags[ext_opcode];
printf (" %3d : %s", (int) cbc_offset, cbc_ext_names[ext_opcode]); jerry_port_log (JERRY_LOG_LEVEL_DEBUG, " %3d : %s", (int) cbc_offset, cbc_ext_names[ext_opcode]);
byte_code_p += 2; byte_code_p += 2;
} }
@@ -1179,7 +1181,7 @@ parse_print_final_cbc (ecma_compiled_code_t *compiled_code_p, /**< compiled code
if (flags & CBC_HAS_BYTE_ARG) if (flags & CBC_HAS_BYTE_ARG)
{ {
printf (" byte_arg:%d", *byte_code_p); jerry_port_log (JERRY_LOG_LEVEL_DEBUG, " byte_arg:%d", *byte_code_p);
byte_code_p++; byte_code_p++;
} }
@@ -1201,14 +1203,15 @@ parse_print_final_cbc (ecma_compiled_code_t *compiled_code_p, /**< compiled code
if (CBC_BRANCH_IS_FORWARD (flags)) if (CBC_BRANCH_IS_FORWARD (flags))
{ {
printf (" offset:%d(->%d)", (int) offset, (int) (cbc_offset + offset)); jerry_port_log (JERRY_LOG_LEVEL_DEBUG, " offset:%d(->%d)", (int) offset, (int) (cbc_offset + offset));
} }
else else
{ {
printf (" offset:%d(->%d)", (int) offset, (int) (cbc_offset - offset)); jerry_port_log (JERRY_LOG_LEVEL_DEBUG, " offset:%d(->%d)", (int) offset, (int) (cbc_offset - offset));
} }
} }
printf ("\n");
jerry_port_log (JERRY_LOG_LEVEL_DEBUG, "\n");
} }
} /* parse_print_final_cbc */ } /* parse_print_final_cbc */
@@ -1685,7 +1688,7 @@ parser_post_processing (parser_context_t *context_p) /**< context */
lexer_literal_t *literal_p; lexer_literal_t *literal_p;
parse_print_final_cbc (compiled_code_p, &context_p->literal_pool, length); parse_print_final_cbc (compiled_code_p, &context_p->literal_pool, length);
printf ("\nByte code size: %d bytes\n", (int) length); jerry_port_log (JERRY_LOG_LEVEL_DEBUG, "\nByte code size: %d bytes\n", (int) length);
context_p->total_byte_code_size += (uint32_t) length; context_p->total_byte_code_size += (uint32_t) length;
parser_list_iterator_init (&context_p->literal_pool, &literal_iterator); parser_list_iterator_init (&context_p->literal_pool, &literal_iterator);
@@ -1856,7 +1859,7 @@ parser_parse_source (const uint8_t *source_p, /**< valid UTF-8 source code */
if (context.is_show_opcodes) if (context.is_show_opcodes)
{ {
printf ("\n--- Script parsing start ---\n\n"); jerry_port_log (JERRY_LOG_LEVEL_DEBUG, "\n--- Script parsing start ---\n\n");
} }
#endif /* PARSER_DUMP_BYTE_CODE */ #endif /* PARSER_DUMP_BYTE_CODE */
@@ -1890,8 +1893,9 @@ parser_parse_source (const uint8_t *source_p, /**< valid UTF-8 source code */
#ifdef PARSER_DUMP_BYTE_CODE #ifdef PARSER_DUMP_BYTE_CODE
if (context.is_show_opcodes) if (context.is_show_opcodes)
{ {
printf ("\nScript parsing successfully completed. Total byte code size: %d bytes\n", jerry_port_log (JERRY_LOG_LEVEL_DEBUG,
(int) context.total_byte_code_size); "\nScript parsing successfully completed. Total byte code size: %d bytes\n",
(int) context.total_byte_code_size);
} }
#endif /* PARSER_DUMP_BYTE_CODE */ #endif /* PARSER_DUMP_BYTE_CODE */
} }
@@ -1924,7 +1928,7 @@ parser_parse_source (const uint8_t *source_p, /**< valid UTF-8 source code */
#ifdef PARSER_DUMP_BYTE_CODE #ifdef PARSER_DUMP_BYTE_CODE
if (context.is_show_opcodes) if (context.is_show_opcodes)
{ {
printf ("\n--- Script parsing end ---\n\n"); jerry_port_log (JERRY_LOG_LEVEL_DEBUG, "\n--- Script parsing end ---\n\n");
} }
#endif /* PARSER_DUMP_BYTE_CODE */ #endif /* PARSER_DUMP_BYTE_CODE */
@@ -1993,7 +1997,7 @@ parser_parse_function (parser_context_t *context_p, /**< context */
#ifdef PARSER_DUMP_BYTE_CODE #ifdef PARSER_DUMP_BYTE_CODE
if (context_p->is_show_opcodes) if (context_p->is_show_opcodes)
{ {
printf ("\n--- Function parsing start ---\n\n"); jerry_port_log (JERRY_LOG_LEVEL_DEBUG, "\n--- Function parsing start ---\n\n");
} }
#endif /* PARSER_DUMP_BYTE_CODE */ #endif /* PARSER_DUMP_BYTE_CODE */
@@ -2140,7 +2144,7 @@ parser_parse_function (parser_context_t *context_p, /**< context */
if (context_p->is_show_opcodes if (context_p->is_show_opcodes
&& (context_p->status_flags & PARSER_HAS_NON_STRICT_ARG)) && (context_p->status_flags & PARSER_HAS_NON_STRICT_ARG))
{ {
printf (" Note: legacy (non-strict) argument definition\n\n"); jerry_port_log (JERRY_LOG_LEVEL_DEBUG, " Note: legacy (non-strict) argument definition\n\n");
} }
#endif /* PARSER_DUMP_BYTE_CODE */ #endif /* PARSER_DUMP_BYTE_CODE */
@@ -2156,7 +2160,7 @@ parser_parse_function (parser_context_t *context_p, /**< context */
#ifdef PARSER_DUMP_BYTE_CODE #ifdef PARSER_DUMP_BYTE_CODE
if (context_p->is_show_opcodes) if (context_p->is_show_opcodes)
{ {
printf ("\n--- Function parsing end ---\n\n"); jerry_port_log (JERRY_LOG_LEVEL_DEBUG, "\n--- Function parsing end ---\n\n");
} }
#endif /* PARSER_DUMP_BYTE_CODE */ #endif /* PARSER_DUMP_BYTE_CODE */
+25 -21
View File
@@ -93,30 +93,31 @@ assert_handler (const jerry_value_t func_obj_val __attribute__((unused)), /**< f
static void static void
print_usage (char *name) print_usage (char *name)
{ {
printf ("Usage: %s [OPTION]... [FILE]...\n" jerry_port_console ("Usage: %s [OPTION]... [FILE]...\n"
"Try '%s --help' for more information.\n", "Try '%s --help' for more information.\n",
name, name); name,
name);
} /* print_usage */ } /* print_usage */
static void static void
print_help (char *name) print_help (char *name)
{ {
printf ("Usage: %s [OPTION]... [FILE]...\n" jerry_port_console ("Usage: %s [OPTION]... [FILE]...\n"
"\n" "\n"
"Options:\n" "Options:\n"
" -h, --help\n" " -h, --help\n"
" -v, --version\n" " -v, --version\n"
" --mem-stats\n" " --mem-stats\n"
" --mem-stats-separate\n" " --mem-stats-separate\n"
" --parse-only\n" " --parse-only\n"
" --show-opcodes\n" " --show-opcodes\n"
" --save-snapshot-for-global FILE\n" " --save-snapshot-for-global FILE\n"
" --save-snapshot-for-eval FILE\n" " --save-snapshot-for-eval FILE\n"
" --exec-snapshot FILE\n" " --exec-snapshot FILE\n"
" --log-level [0-3]\n" " --log-level [0-3]\n"
" --abort-on-fail\n" " --abort-on-fail\n"
"\n", "\n",
name); name);
} /* print_help */ } /* print_help */
int int
@@ -164,16 +165,18 @@ main (int argc,
} }
else if (!strcmp ("-v", argv[i]) || !strcmp ("--version", argv[i])) else if (!strcmp ("-v", argv[i]) || !strcmp ("--version", argv[i]))
{ {
printf ("Version: \t%d.%d\n\n", JERRY_API_MAJOR_VERSION, JERRY_API_MINOR_VERSION); jerry_port_console ("Version: \t%d.%d\n\n", JERRY_API_MAJOR_VERSION, JERRY_API_MINOR_VERSION);
return JERRY_STANDALONE_EXIT_CODE_OK; return JERRY_STANDALONE_EXIT_CODE_OK;
} }
else if (!strcmp ("--mem-stats", argv[i])) else if (!strcmp ("--mem-stats", argv[i]))
{ {
flags |= JERRY_INIT_MEM_STATS; flags |= JERRY_INIT_MEM_STATS;
jerry_port_default_set_log_level (JERRY_LOG_LEVEL_DEBUG);
} }
else if (!strcmp ("--mem-stats-separate", argv[i])) else if (!strcmp ("--mem-stats-separate", argv[i]))
{ {
flags |= JERRY_INIT_MEM_STATS_SEPARATE; flags |= JERRY_INIT_MEM_STATS_SEPARATE;
jerry_port_default_set_log_level (JERRY_LOG_LEVEL_DEBUG);
} }
else if (!strcmp ("--parse-only", argv[i])) else if (!strcmp ("--parse-only", argv[i]))
{ {
@@ -182,6 +185,7 @@ main (int argc,
else if (!strcmp ("--show-opcodes", argv[i])) else if (!strcmp ("--show-opcodes", argv[i]))
{ {
flags |= JERRY_INIT_SHOW_OPCODES; flags |= JERRY_INIT_SHOW_OPCODES;
jerry_port_default_set_log_level (JERRY_LOG_LEVEL_DEBUG);
} }
else if (!strcmp ("--save-snapshot-for-global", argv[i]) else if (!strcmp ("--save-snapshot-for-global", argv[i])
|| !strcmp ("--save-snapshot-for-eval", argv[i])) || !strcmp ("--save-snapshot-for-eval", argv[i]))
@@ -396,7 +400,7 @@ main (int argc,
uint8_t *source_buffer_tail = buffer; uint8_t *source_buffer_tail = buffer;
size_t len = 0; size_t len = 0;
printf ("%s", prompt); jerry_port_console ("%s", prompt);
/* Read a line */ /* Read a line */
while (true) while (true)