diff --git a/deps/jerryscript b/deps/jerryscript index c429530d0..145ab1ed7 160000 --- a/deps/jerryscript +++ b/deps/jerryscript @@ -1 +1 @@ -Subproject commit c429530d02347431856fa0bfa1c161c6f3b6953a +Subproject commit 145ab1ed79d3fc1e8618040c3495f9cfd400f64c diff --git a/src/ashell/jerry-code.c b/src/ashell/jerry-code.c index e6235fe58..ae8b52be4 100644 --- a/src/ashell/jerry-code.c +++ b/src/ashell/jerry-code.c @@ -35,7 +35,7 @@ static jerry_value_t parsed_code = 0; void javascript_eval_code(const char *source_buffer, ssize_t size) { ZVAL ret_val = jerry_eval((jerry_char_t *)source_buffer, size, false); - if (jerry_value_has_error_flag(ret_val)) { + if (jerry_value_is_error(ret_val)) { printf("[ERR] failed to evaluate JS\n"); zjs_print_error_message(ret_val, ZJS_UNDEFINED); } @@ -63,8 +63,9 @@ int javascript_parse_code(const char *file_name) if (buf && size > 0) { /* Setup Global scope code */ - parsed_code = jerry_parse((const jerry_char_t *)buf, size, false); - if (jerry_value_has_error_flag(parsed_code)) { + parsed_code = jerry_parse(NULL, 0, (const jerry_char_t *)buf, size, + JERRY_PARSE_NO_OPTS); + if (jerry_value_is_error(parsed_code)) { DBG_PRINT("Error parsing JS\n"); zjs_print_error_message(parsed_code, ZJS_UNDEFINED); jerry_release_value(parsed_code); @@ -85,7 +86,7 @@ void javascript_run_code(const char *file_name) /* Execute the parsed source code in the Global scope */ ZVAL ret_value = jerry_run(parsed_code); - if (jerry_value_has_error_flag(ret_value)) { + if (jerry_value_is_error(ret_value)) { DBG_PRINT("Error running JS\n"); zjs_print_error_message(ret_value, ZJS_UNDEFINED); } diff --git a/src/jerry-port/zjs_jerry_port.c b/src/jerry-port/zjs_jerry_port.c index a81432aee..c93914665 100644 --- a/src/jerry-port/zjs_jerry_port.c +++ b/src/jerry-port/zjs_jerry_port.c @@ -57,3 +57,12 @@ void jerry_port_log(jerry_log_level_t level, const char *format, ...) #endif /* JERRY_DEBUGGER */ va_end(args); } + +void jerry_port_sleep (uint32_t sleep_time) +{ +#ifdef ZJS_LINUX_BUILD + usleep ((useconds_t) sleep_time * 1000); +#else + k_sleep ((useconds_t) sleep_time); +#endif +} diff --git a/src/main.c b/src/main.c index 7dc2097a7..53a5c36d6 100644 --- a/src/main.c +++ b/src/main.c @@ -293,13 +293,13 @@ int main(int argc, char *argv[]) #endif #ifndef ZJS_SNAPSHOT_BUILD - code_eval = jerry_parse_named_resource((jerry_char_t *)file_name, - file_name_len, - (jerry_char_t *)script, - script_len, - false); + code_eval = jerry_parse((jerry_char_t *)file_name, + file_name_len, + (jerry_char_t *)script, + script_len, + JERRY_PARSE_NO_OPTS); - if (jerry_value_has_error_flag(code_eval)) { + if (jerry_value_is_error(code_eval)) { DBG_PRINT("Error parsing JS\n"); zjs_print_error_message(code_eval, ZJS_UNDEFINED); goto error; @@ -311,12 +311,16 @@ int main(int argc, char *argv[]) #endif #ifdef ZJS_SNAPSHOT_BUILD - result = jerry_exec_snapshot(snapshot_bytecode, snapshot_len, false); + result = jerry_exec_snapshot(snapshot_bytecode, + snapshot_len, + 0, + JERRY_SNAPSHOT_EXEC_COPY_DATA); + #else result = jerry_run(code_eval); #endif - if (jerry_value_has_error_flag(result)) { + if (jerry_value_is_error(result)) { DBG_PRINT("Error running JS\n"); zjs_print_error_message(result, ZJS_UNDEFINED); goto error; @@ -406,7 +410,7 @@ int main(int argc, char *argv[]) #ifdef BUILD_MODULE_PROMISE // run queued jobs for promises result = jerry_run_all_enqueued_jobs(); - if (jerry_value_has_error_flag(result)) { + if (jerry_value_is_error(result)) { DBG_PRINT("Error running JS in promise jobqueue\n"); zjs_print_error_message(result, ZJS_UNDEFINED); goto error; diff --git a/src/sensors/zjs_sensor_accel.c b/src/sensors/zjs_sensor_accel.c index efa5544e1..50a9ff96f 100644 --- a/src/sensors/zjs_sensor_accel.c +++ b/src/sensors/zjs_sensor_accel.c @@ -47,7 +47,7 @@ static ZJS_DECL_FUNC(zjs_sensor_constructor) zjs_sensor_create, g_instance, SENSOR_CHAN_ACCEL_XYZ, ACCEL_DEVICE_NAME, 0, 800, onchange, NULL, onstop); - if (!jerry_value_has_error_flag(sensor_obj)) { + if (!jerry_value_is_error(sensor_obj)) { ZVAL null_val = jerry_create_null(); zjs_set_readonly_property(sensor_obj, "x", null_val); zjs_set_readonly_property(sensor_obj, "y", null_val); diff --git a/src/sensors/zjs_sensor_gyro.c b/src/sensors/zjs_sensor_gyro.c index 4d653a000..476e00038 100644 --- a/src/sensors/zjs_sensor_gyro.c +++ b/src/sensors/zjs_sensor_gyro.c @@ -47,7 +47,7 @@ static ZJS_DECL_FUNC(zjs_sensor_constructor) ZJS_CHAIN_FUNC_ARGS(zjs_sensor_create, g_instance, SENSOR_CHAN_GYRO_XYZ, GYRO_DEVICE_NAME, 0, 800, onchange, NULL, onstop); - if (!jerry_value_has_error_flag(sensor_obj)) { + if (!jerry_value_is_error(sensor_obj)) { ZVAL null_val = jerry_create_null(); zjs_set_readonly_property(sensor_obj, "x", null_val); zjs_set_readonly_property(sensor_obj, "y", null_val); diff --git a/src/sensors/zjs_sensor_light.c b/src/sensors/zjs_sensor_light.c index 5477f2e12..53cc261ee 100644 --- a/src/sensors/zjs_sensor_light.c +++ b/src/sensors/zjs_sensor_light.c @@ -41,7 +41,7 @@ static ZJS_DECL_FUNC(zjs_sensor_constructor) ZJS_CHAIN_FUNC_ARGS(zjs_sensor_create, g_instance, SENSOR_CHAN_LIGHT, ADC_DEVICE_NAME, -1, 100, onchange, NULL, onstop); - if (!jerry_value_has_error_flag(sensor_obj)) { + if (!jerry_value_is_error(sensor_obj)) { ZVAL null_val = jerry_create_null(); zjs_set_readonly_property(sensor_obj, "illuminance", null_val); } diff --git a/src/sensors/zjs_sensor_magn.c b/src/sensors/zjs_sensor_magn.c index dc2acc745..ea3a89c90 100644 --- a/src/sensors/zjs_sensor_magn.c +++ b/src/sensors/zjs_sensor_magn.c @@ -47,7 +47,7 @@ static ZJS_DECL_FUNC(zjs_sensor_constructor) ZJS_CHAIN_FUNC_ARGS(zjs_sensor_create, g_instance, SENSOR_CHAN_MAGN_XYZ, MAGN_DEVICE_NAME, 0, 800, onchange, NULL, onstop); - if (!jerry_value_has_error_flag(sensor_obj)) { + if (!jerry_value_is_error(sensor_obj)) { ZVAL null_val = jerry_create_null(); zjs_set_readonly_property(sensor_obj, "x", null_val); zjs_set_readonly_property(sensor_obj, "y", null_val); diff --git a/src/sensors/zjs_sensor_temp.c b/src/sensors/zjs_sensor_temp.c index d2ba0d11a..ee4d78cf3 100644 --- a/src/sensors/zjs_sensor_temp.c +++ b/src/sensors/zjs_sensor_temp.c @@ -41,7 +41,7 @@ static ZJS_DECL_FUNC(zjs_sensor_constructor) ZJS_CHAIN_FUNC_ARGS(zjs_sensor_create, g_instance, SENSOR_CHAN_TEMP, TEMP_DEVICE_NAME, 0, 800, onchange, NULL, onstop); - if (!jerry_value_has_error_flag(sensor_obj)) { + if (!jerry_value_is_error(sensor_obj)) { ZVAL null_val = jerry_create_null(); zjs_set_readonly_property(sensor_obj, "celsius", null_val); } diff --git a/src/zjs_aio_a101.c b/src/zjs_aio_a101.c index 1a143da4e..82e0a0110 100644 --- a/src/zjs_aio_a101.c +++ b/src/zjs_aio_a101.c @@ -239,7 +239,7 @@ static ZJS_DECL_FUNC(zjs_aio_open) send.data.aio.pin = pin; ZVAL result = zjs_aio_call_remote_function(&send); - if (jerry_value_has_error_flag(result)) + if (jerry_value_is_error(result)) return result; // create the AIOPin object diff --git a/src/zjs_ble.c b/src/zjs_ble.c index ad0c302f9..482a96af9 100644 --- a/src/zjs_ble.c +++ b/src/zjs_ble.c @@ -260,7 +260,7 @@ static void zjs_ble_read_c_callback(void *handle, const void *argv) jerry_value_t args[2] = { offset, callback }; ZVAL rval = jerry_call_function(cb->js_callback, chrc->chrc_obj, args, 2); - if (jerry_value_has_error_flag(rval)) { + if (jerry_value_is_error(rval)) { DBG_PRINT("failed to call onReadRequest function\n"); } } @@ -366,7 +366,7 @@ static void zjs_ble_write_c_callback(void *handle, const void *argv) jerry_value_t args[4] = { buf_obj, offset, without_response, callback }; ZVAL rval = jerry_call_function(cb->js_callback, chrc->chrc_obj, args, 4); - if (jerry_value_has_error_flag(rval)) { + if (jerry_value_is_error(rval)) { DBG_PRINT("failed to call onWriteRequest function\n"); } } @@ -444,7 +444,7 @@ static void zjs_ble_subscribe_c_callback(void *handle, const void *argv) jerry_value_t args[2] = { max_size, callback }; ZVAL rval = jerry_call_function(cb->js_callback, chrc->chrc_obj, args, 2); - if (jerry_value_has_error_flag(rval)) { + if (jerry_value_is_error(rval)) { DBG_PRINT("failed to call onSubscribe function\n"); } } @@ -455,7 +455,7 @@ static void zjs_ble_unsubscribe_c_callback(void *handle, const void *argv) ble_notify_handle_t *cb = &chrc->unsubscribe_cb; ZVAL rval = jerry_call_function(cb->js_callback, chrc->chrc_obj, NULL, 0); - if (jerry_value_has_error_flag(rval)) { + if (jerry_value_is_error(rval)) { DBG_PRINT("failed to call onUnsubscribe function\n"); } } @@ -466,7 +466,7 @@ static void zjs_ble_notify_c_callback(void *handle, const void *argv) ble_notify_handle_t *cb = &chrc->notify_cb; ZVAL rval = jerry_call_function(cb->js_callback, chrc->chrc_obj, NULL, 0); - if (jerry_value_has_error_flag(rval)) { + if (jerry_value_is_error(rval)) { DBG_PRINT("failed to call onNotify function\n"); } } @@ -1212,7 +1212,7 @@ static ZJS_DECL_FUNC(zjs_ble_set_services) ZVAL arg = success ? ZJS_UNDEFINED : jerry_create_string("failed to register services"); ZVAL rval = jerry_call_function(argv[1], ZJS_UNDEFINED, &arg, 1); - if (jerry_value_has_error_flag(rval)) { + if (jerry_value_is_error(rval)) { DBG_PRINT("failed to call callback function\n"); } } diff --git a/src/zjs_callbacks.c b/src/zjs_callbacks.c index 39e2a3d58..0068c559f 100644 --- a/src/zjs_callbacks.c +++ b/src/zjs_callbacks.c @@ -523,7 +523,7 @@ void zjs_call_callback(zjs_callback_id id, const void *data, u32_t sz) if (!jerry_value_is_undefined(cb_map[id]->js_func)) { rval = jerry_call_function(cb_map[id]->js_func, cb_map[id]->this, values, sz); - if (jerry_value_has_error_flag(rval)) { + if (jerry_value_is_error(rval)) { #ifdef INSTRUMENT_CALLBACKS DBG_PRINT("callback %d had error; creator: %s, " "caller: %s\n", diff --git a/src/zjs_event.c b/src/zjs_event.c index 62e9f6f96..2edb11f0b 100644 --- a/src/zjs_event.c +++ b/src/zjs_event.c @@ -136,7 +136,7 @@ static ZJS_DECL_FUNC(add_listener) jerry_value_t rval = zjs_add_event_listener(this, name, argv[1]); zjs_free(name); - if (jerry_value_has_error_flag(rval)) { + if (jerry_value_is_error(rval)) { return rval; } @@ -422,7 +422,7 @@ bool zjs_emit_event_priv(jerry_value_t obj, const char *event_name, listener_t *listener = event->listeners; while (listener) { ZVAL rval = jerry_call_function(listener->func, obj, argv, argc); - if (jerry_value_has_error_flag(rval)) { + if (jerry_value_is_error(rval)) { ERR_PRINT("error calling listener\n"); } listener = listener->next; diff --git a/src/zjs_gfx.c b/src/zjs_gfx.c index 97e63de43..9c7532b3c 100644 --- a/src/zjs_gfx.c +++ b/src/zjs_gfx.c @@ -188,7 +188,7 @@ static jerry_value_t zjs_gfx_call_cb(u32_t x, u32_t y, u32_t w, u32_t h, jerry_value_t ret = jerry_call_function(gfxHandle->drawDataCB, gfxHandle->jsThis, args, 5); - if (jerry_value_has_error_flag(ret)) { + if (jerry_value_is_error(ret)) { ERR_PRINT("JS callback failed with %u..\n", (u32_t)ret); return ret; } @@ -273,7 +273,7 @@ static jerry_value_t zjs_gfx_flush(gfx_handle_t *gfxHandle) ret = zjs_gfx_call_cb(xStart, yStart, currW, currH, recBufObj, gfxHandle); - if (jerry_value_has_error_flag(ret)) { + if (jerry_value_is_error(ret)) { zjs_gfx_reset_touched_pixels(gfxHandle); return ret; } @@ -625,7 +625,7 @@ static ZJS_DECL_FUNC(zjs_gfx_draw_string) ret = zjs_gfx_draw_char_priv(x, argData.coords[1], argData.text[i], argData.color, argData.size, handle); - if (jerry_value_has_error_flag(ret)) { + if (jerry_value_is_error(ret)) { return ret; } diff --git a/src/zjs_grove_lcd_ipm.c b/src/zjs_grove_lcd_ipm.c index 36c724779..634379336 100644 --- a/src/zjs_grove_lcd_ipm.c +++ b/src/zjs_grove_lcd_ipm.c @@ -75,7 +75,7 @@ static jerry_value_t zjs_glcd_call_remote_function(zjs_ipm_message_t *send) static jerry_value_t zjs_glcd_call_remote_ignore(zjs_ipm_message_t *send) { ZVAL rval = zjs_glcd_call_remote_function(send); - if (jerry_value_has_error_flag(rval)) + if (jerry_value_is_error(rval)) return rval; return ZJS_UNDEFINED; @@ -231,7 +231,7 @@ static ZJS_DECL_FUNC(zjs_glcd_init) send.type = TYPE_GLCD_INIT; ZVAL result = zjs_glcd_call_remote_function(&send); - if (jerry_value_has_error_flag(result)) { + if (jerry_value_is_error(result)) { return result; } diff --git a/src/zjs_modules.c b/src/zjs_modules.c index 930fc1304..ef32ea3fc 100644 --- a/src/zjs_modules.c +++ b/src/zjs_modules.c @@ -50,7 +50,7 @@ static bool javascript_eval_code(const char *source_buffer, ssize_t size, jerry_value_t *ret_val) { (*ret_val) = jerry_eval((jerry_char_t *)source_buffer, size, false); - if (jerry_value_has_error_flag(*ret_val)) { + if (jerry_value_is_error(*ret_val)) { ERR_PRINT("failed to evaluate JS\n"); return false; } @@ -114,7 +114,7 @@ static bool load_js_module_fs(const jerry_value_t module_name, } (*result) = jerry_eval((jerry_char_t *)str, len, false); - if (jerry_value_has_error_flag(*result)) { + if (jerry_value_is_error(*result)) { ERR_PRINT("failed to evaluate JS\n"); ret = false; } else { @@ -202,7 +202,7 @@ static ZJS_DECL_FUNC(native_require_handler) // Try each of the resolvers to see if we can find the requested module jerry_value_t result = jerryx_module_resolve(argv[0], resolvers, 3); - if (jerry_value_has_error_flag(result)) { + if (jerry_value_is_error(result)) { DBG_PRINT("Couldn't load module %s\n", module); return NOTSUPPORTED_ERROR("Module not found"); } else { @@ -279,12 +279,13 @@ void zjs_modules_check_load_file() size_t size; jerry_value_t parsed_code = 0; buf = read_file_alloc(load_file, &size); - parsed_code = jerry_parse((const jerry_char_t *)buf, size, false); + parsed_code = jerry_parse(NULL, 0, const jerry_char_t *)buf, size, + JERRY_PARSE_NO_OPTS); zjs_free(buf); - if (!jerry_value_has_error_flag(parsed_code)) { + if (!jerry_value_is_error(parsed_code)) { ZVAL ret_value = jerry_run(parsed_code); - if (jerry_value_has_error_flag(ret_value)) { + if (jerry_value_is_error(ret_value)) { ERR_PRINT("Error running JS\n"); } } diff --git a/src/zjs_sensor.c b/src/zjs_sensor.c index 92356f22b..4692b0fc5 100644 --- a/src/zjs_sensor.c +++ b/src/zjs_sensor.c @@ -171,7 +171,7 @@ void zjs_sensor_trigger_change(jerry_value_t obj) ZVAL event = zjs_create_object(); // if onreading exists, call it ZVAL rval = jerry_call_function(func, obj, NULL, 0); - if (jerry_value_has_error_flag(rval)) { + if (jerry_value_is_error(rval)) { ERR_PRINT("Error calling onreading\n"); } } diff --git a/src/zjs_util.c b/src/zjs_util.c index 7058ab480..d7ddfaff7 100644 --- a/src/zjs_util.c +++ b/src/zjs_util.c @@ -217,7 +217,7 @@ bool zjs_obj_get_boolean(jerry_value_t obj, const char *name, bool *flag) ZVAL value = zjs_get_property(obj, name); bool rval = false; - if (!jerry_value_has_error_flag(value) && jerry_value_is_boolean(value)) { + if (!jerry_value_is_error(value) && jerry_value_is_boolean(value)) { *flag = jerry_get_boolean_value(value); rval = true; } @@ -237,7 +237,7 @@ bool zjs_obj_get_string(jerry_value_t obj, const char *name, char *buffer, ZVAL value = zjs_get_property(obj, name); bool rval = false; - if (!jerry_value_has_error_flag(value) && jerry_value_is_string(value)) { + if (!jerry_value_is_error(value) && jerry_value_is_string(value)) { jerry_size_t size = len; zjs_copy_jstring(value, buffer, &size); if (size) @@ -254,7 +254,7 @@ bool zjs_obj_get_double(jerry_value_t obj, const char *name, double *num) ZVAL value = zjs_get_property(obj, name); bool rval = false; - if (!jerry_value_has_error_flag(value) && jerry_value_is_number(value)) { + if (!jerry_value_is_error(value) && jerry_value_is_number(value)) { *num = jerry_get_number_value(value); rval = true; } @@ -269,7 +269,7 @@ bool zjs_obj_get_uint32(jerry_value_t obj, const char *name, u32_t *num) ZVAL value = zjs_get_property(obj, name); bool rval = false; - if (!jerry_value_has_error_flag(value) && jerry_value_is_number(value)) { + if (!jerry_value_is_error(value) && jerry_value_is_number(value)) { *num = (u32_t)jerry_get_number_value(value); rval = true; } @@ -284,7 +284,7 @@ bool zjs_obj_get_int32(jerry_value_t obj, const char *name, s32_t *num) ZVAL value = zjs_get_property(obj, name); bool rval = false; - if (!jerry_value_has_error_flag(value) && jerry_value_is_number(value)) { + if (!jerry_value_is_error(value) && jerry_value_is_number(value)) { *num = (s32_t)jerry_get_number_value(value); rval = true; } @@ -738,7 +738,7 @@ int zjs_validate_args(const char *expectations[], const jerry_length_t argc, int zjs_require_bool_if_prop(jerry_value_t obj, const char *prop, bool *result) { ZVAL value = zjs_get_property(obj, prop); - if (jerry_value_is_undefined(value) || jerry_value_has_error_flag(value)) { + if (jerry_value_is_undefined(value) || jerry_value_is_error(value)) { // not found; leave default return 0; } @@ -755,7 +755,7 @@ int zjs_require_string_if_prop_map(jerry_value_t obj, const char *prop, str2int_t map[], int maxlen, int *result) { ZVAL value = zjs_get_property(obj, prop); - if (jerry_value_is_undefined(value) || jerry_value_has_error_flag(value)) { + if (jerry_value_is_undefined(value) || jerry_value_is_error(value)) { // not found; leave default return 0; } diff --git a/tools/snapshot.c b/tools/snapshot.c index f6f7f0e5b..3da3d6201 100644 --- a/tools/snapshot.c +++ b/tools/snapshot.c @@ -39,12 +39,13 @@ int main(int argc, char *argv[]) return 1; } - size_t size = jerry_parse_and_save_snapshot((jerry_char_t *)script, - len, - true, - false, - snapshot_buf, - sizeof(snapshot_buf)); + size_t size = jerry_generate_snapshot(NULL, + 0, + (const jerry_char_t *)script, + len, + 0, + snapshot_buf, + sizeof(snapshot_buf)); if (script != NULL) free(script);