diff --git a/jerry-core/jerry.cpp b/jerry-core/jerry.cpp index 4a041a587e..731830f6dc 100644 --- a/jerry-core/jerry.cpp +++ b/jerry-core/jerry.cpp @@ -1171,6 +1171,7 @@ jerry_cleanup (void) ecma_finalize (); serializer_free (); mem_finalize (is_show_mem_stats); + vm_finalize (); } /* jerry_cleanup */ /** diff --git a/jerry-core/vm/vm.cpp b/jerry-core/vm/vm.cpp index 834b178b79..baabc9da79 100644 --- a/jerry-core/vm/vm.cpp +++ b/jerry-core/vm/vm.cpp @@ -350,6 +350,15 @@ vm_init (const opcode_t *program_p, /**< pointer to byte-code program */ __program = program_p; } /* vm_init */ +/** + * Cleanup interpreter + */ +void +vm_finalize (void) +{ + __program = NULL; +} /* vm_finalize */ + /** * Run global code */ diff --git a/jerry-core/vm/vm.h b/jerry-core/vm/vm.h index d584c7f2af..c3782d5639 100644 --- a/jerry-core/vm/vm.h +++ b/jerry-core/vm/vm.h @@ -21,6 +21,7 @@ #include "opcodes.h" extern void vm_init (const opcode_t* program_p, bool dump_mem_stats); +extern void vm_finalize (void); extern jerry_completion_code_t vm_run_global (void); extern ecma_completion_value_t vm_loop (int_data_t *int_data); extern ecma_completion_value_t vm_run_from_pos (opcode_counter_t start_pos,