diff --git a/src/libjsparser/lexer.c b/src/libjsparser/lexer.c index 8419bc210..91e3985d9 100644 --- a/src/libjsparser/lexer.c +++ b/src/libjsparser/lexer.c @@ -56,7 +56,7 @@ static const char *token_start; static char get_char (size_t i) { - JERRY_ASSERT (i < buffer_size); + JERRY_ASSERT ((buffer + i) < (buffer_start + buffer_size)); return *(buffer + i); } @@ -950,4 +950,6 @@ void lexer_free (void) { mem_heap_free_block ((uint8_t *) strings_cache); + strings_cache = NULL; + strings_cache_size = 0; } diff --git a/src/main.c b/src/main.c index 5ce0a4f8a..7c8eeefae 100644 --- a/src/main.c +++ b/src/main.c @@ -52,11 +52,11 @@ parser_run (const char *script_source, size_t script_source_size, bool is_show_o offset = serializer_dump_strings (strings, strings_num); serializer_dump_nums (nums, nums_count, offset, strings_num); - lexer_free (); - parser_init (); parser_parse_program (); + lexer_free (); + opcodes = deserialize_bytecode (); optimizer_run_passes ((OPCODE *) opcodes);