diff options
Diffstat (limited to 'targets/esp8266/user/jerry_run.c')
-rw-r--r-- | targets/esp8266/user/jerry_run.c | 87 |
1 files changed, 48 insertions, 39 deletions
diff --git a/targets/esp8266/user/jerry_run.c b/targets/esp8266/user/jerry_run.c index e7fff4c3..b3205bac 100644 --- a/targets/esp8266/user/jerry_run.c +++ b/targets/esp8266/user/jerry_run.c @@ -13,88 +13,97 @@ * limitations under the License. */ -#include <stdlib.h> -#include <stdio.h> - -#include "jerry_extapi.h" #include "jerry_run.h" -#include "jerryscript.h" +#include <stdio.h> +#include <stdlib.h> + #include "jerryscript-port.h" +#include "jerryscript.h" + +#include "jerry_extapi.h" -static const char* fn_sys_loop_name = "sysloop"; +static const char *fn_sys_loop_name = "sysloop"; -void js_entry () +void +js_entry () { - union { double d; unsigned u; } now = { .d = jerry_port_get_current_time () }; + union + { + double d; + unsigned u; + } now = { .d = jerry_port_get_current_time () }; srand (now.u); jerry_init (JERRY_INIT_EMPTY); js_register_functions (); } -int js_eval (const char *source_p, const size_t source_size) +int +js_eval (const char *source_p, const size_t source_size) { - jerry_value_t res = jerry_eval ((jerry_char_t *) source_p, - source_size, - JERRY_PARSE_NO_OPTS); - if (jerry_value_is_error (res)) { - jerry_release_value (res); + jerry_value_t res = jerry_eval ((jerry_char_t *) source_p, source_size, JERRY_PARSE_NO_OPTS); + if (jerry_value_is_exception (res)) + { + jerry_value_free (res); return -1; } - jerry_release_value (res); + jerry_value_free (res); return 0; } -int js_loop (uint32_t ticknow) +int +js_loop (uint32_t ticknow) { - jerry_value_t global_obj_val = jerry_get_global_object (); - jerry_value_t prop_name_val = jerry_create_string ((const jerry_char_t *) fn_sys_loop_name); - jerry_value_t sysloop_func = jerry_get_property (global_obj_val, prop_name_val); - jerry_release_value (prop_name_val); + jerry_value_t global_obj_val = jerry_current_realm (); + jerry_value_t prop_name_val = jerry_string_sz (fn_sys_loop_name); + jerry_value_t sysloop_func = jerry_object_get (global_obj_val, prop_name_val); + jerry_value_free (prop_name_val); - if (jerry_value_is_error (sysloop_func)) { + if (jerry_value_is_exception (sysloop_func)) + { printf ("Error: '%s' not defined!!!\r\n", fn_sys_loop_name); - jerry_release_value (sysloop_func); - jerry_release_value (global_obj_val); + jerry_value_free (sysloop_func); + jerry_value_free (global_obj_val); return -1; } - if (!jerry_value_is_function (sysloop_func)) { + if (!jerry_value_is_function (sysloop_func)) + { printf ("Error: '%s' is not a function!!!\r\n", fn_sys_loop_name); - jerry_release_value (sysloop_func); - jerry_release_value (global_obj_val); + jerry_value_free (sysloop_func); + jerry_value_free (global_obj_val); return -2; } - jerry_value_t val_args[] = { jerry_create_number (ticknow) }; + jerry_value_t val_args[] = { jerry_number (ticknow) }; uint16_t val_argv = sizeof (val_args) / sizeof (jerry_value_t); - jerry_value_t res = jerry_call_function (sysloop_func, - global_obj_val, - val_args, - val_argv); + jerry_value_t res = jerry_call (sysloop_func, global_obj_val, val_args, val_argv); - for (uint16_t i = 0; i < val_argv; i++) { - jerry_release_value (val_args[i]); + for (uint16_t i = 0; i < val_argv; i++) + { + jerry_value_free (val_args[i]); } - jerry_release_value (sysloop_func); - jerry_release_value (global_obj_val); + jerry_value_free (sysloop_func); + jerry_value_free (global_obj_val); - if (jerry_value_is_error (res)) { - jerry_release_value (res); + if (jerry_value_is_exception (res)) + { + jerry_value_free (res); return -3; } - jerry_release_value (res); + jerry_value_free (res); return 0; } -void js_exit (void) +void +js_exit (void) { jerry_cleanup (); } |