aboutsummaryrefslogtreecommitdiff
path: root/targets
diff options
context:
space:
mode:
Diffstat (limited to 'targets')
-rw-r--r--targets/curie_bsp/jerry_app/quark/main.c84
-rw-r--r--targets/esp-idf/jerry_module.c73
-rw-r--r--targets/esp8266/user/jerry_extapi.c150
-rw-r--r--targets/esp8266/user/jerry_run.c87
-rw-r--r--targets/mbedos5/jerryscript-mbed/jerryscript-mbed-drivers/source/AnalogIn-js.cpp91
-rw-r--r--targets/mbedos5/jerryscript-mbed/jerryscript-mbed-drivers/source/DigitalOut-js.cpp156
-rw-r--r--targets/mbedos5/jerryscript-mbed/jerryscript-mbed-drivers/source/I2C-js.cpp329
-rw-r--r--targets/mbedos5/jerryscript-mbed/jerryscript-mbed-drivers/source/InterruptIn-js.cpp295
-rw-r--r--targets/mbedos5/jerryscript-mbed/jerryscript-mbed-drivers/source/PwmOut-js.cpp284
-rw-r--r--targets/mbedos5/jerryscript-mbed/jerryscript-mbed-drivers/source/setInterval-js.cpp63
-rw-r--r--targets/mbedos5/jerryscript-mbed/jerryscript-mbed-drivers/source/setTimeout-js.cpp63
-rw-r--r--targets/mbedos5/jerryscript-mbed/jerryscript-mbed-event-loop/EventLoop.h2
-rw-r--r--targets/mbedos5/jerryscript-mbed/jerryscript-mbed-launcher/source/launcher.cpp12
-rw-r--r--targets/mbedos5/jerryscript-mbed/jerryscript-mbed-launcher/source/setup.cpp43
-rw-r--r--targets/mbedos5/jerryscript-mbed/jerryscript-mbed-library-registry/source/wrap_tools.cpp97
-rw-r--r--targets/mbedos5/jerryscript-mbed/jerryscript-mbed-util/wrappers.h92
-rw-r--r--targets/nuttx-stm32f4/jerry_main.c225
-rw-r--r--targets/nuttx-stm32f4/jerry_module.c74
-rw-r--r--targets/particle/source/main.cpp48
-rw-r--r--targets/riot-stm32f4/source/main-riotos.c38
-rw-r--r--targets/zephyr/src/jerry-module.c73
-rw-r--r--targets/zephyr/src/main-zephyr.c70
22 files changed, 1232 insertions, 1217 deletions
diff --git a/targets/curie_bsp/jerry_app/quark/main.c b/targets/curie_bsp/jerry_app/quark/main.c
index 2975bbb0..293ddbb4 100644
--- a/targets/curie_bsp/jerry_app/quark/main.c
+++ b/targets/curie_bsp/jerry_app/quark/main.c
@@ -13,59 +13,58 @@
* limitations under the License.
*/
-#include <stdio.h>
#include <stdint.h>
+#include <stdio.h>
#include <string.h>
-/* Infra */
+#include "jerryscript-port.h"
+#include "jerryscript.h"
+
+#include "cfw/cfw.h"
#include "infra/bsp.h"
-#include "infra/reboot.h"
#include "infra/log.h"
-#include "infra/time.h"
+#include "infra/reboot.h"
#include "infra/system_events.h"
#include "infra/tcmd/handler.h"
-
-#include "cfw/cfw.h"
-/* Watchdog helper */
+#include "infra/time.h"
#include "infra/wdt_helper.h"
-
-#include "jerryscript.h"
-#include "jerryscript-port.h"
-#include "string.h"
-
-#include "zephyr.h"
#include "microkernel/task.h"
-#include "os/os.h"
#include "misc/printk.h"
+#include "os/os.h"
+#include "string.h"
+#include "zephyr.h"
static T_QUEUE queue;
jerry_value_t print_function;
-void jerry_resolve_error (jerry_value_t ret_value)
+void
+jerry_resolve_error (jerry_value_t ret_value)
{
- if (jerry_value_is_error (ret_value))
+ if (jerry_value_is_exception (ret_value))
{
- ret_value = jerry_get_value_from_error (ret_value, true);
+ ret_value = jerry_exception_value (ret_value, true);
jerry_value_t err_str_val = jerry_value_to_string (ret_value);
- jerry_size_t err_str_size = jerry_get_utf8_string_size (err_str_val);
+ jerry_size_t err_str_size = jerry_string_size (err_str_val, JERRY_ENCODING_UTF8);
jerry_char_t *err_str_buf = (jerry_char_t *) balloc (err_str_size, NULL);
- jerry_size_t sz = jerry_string_to_utf8_char_buffer (err_str_val, err_str_buf, err_str_size);
+ jerry_size_t sz = jerry_string_to_buffer (err_str_val, JERRY_ENCODING_UTF8, err_str_buf, err_str_size);
err_str_buf[sz] = 0;
printk ("Script Error: unhandled exception: %s\n", err_str_buf);
- bfree(err_str_buf);
- jerry_release_value (err_str_val);
+ bfree (err_str_buf);
+ jerry_value_free (err_str_val);
}
}
-void help ()
+void
+help ()
{
printk ("Usage:\n");
printk ("js e 'JavaScript Command'\n");
printk ("eg. js e print ('Hello World');\n");
}
-void eval_jerry_script (int argc, char *argv[], struct tcmd_handler_ctx *ctx)
+void
+eval_jerry_script (int argc, char *argv[], struct tcmd_handler_ctx *ctx)
{
if (argc < 3)
{
@@ -77,7 +76,7 @@ void eval_jerry_script (int argc, char *argv[], struct tcmd_handler_ctx *ctx)
{
OS_ERR_TYPE err;
size_t str_total_length = 0;
- size_t *str_lens = (size_t *) balloc ((argc - 2) * sizeof(size_t), &err);
+ size_t *str_lens = (size_t *) balloc ((argc - 2) * sizeof (size_t), &err);
if (str_lens == NULL || err != E_OS_OK)
{
printk ("%s: allocate memory failed!", __func__);
@@ -101,7 +100,7 @@ void eval_jerry_script (int argc, char *argv[], struct tcmd_handler_ctx *ctx)
char *p = buffer;
for (int i = 2; i < argc; ++i)
{
- for (int j =0; j < str_lens[i - 2]; ++j)
+ for (int j = 0; j < str_lens[i - 2]; ++j)
{
*p = argv[i][j];
++p;
@@ -113,41 +112,44 @@ void eval_jerry_script (int argc, char *argv[], struct tcmd_handler_ctx *ctx)
jerry_value_t eval_ret = jerry_eval (buffer, str_total_length - 1, JERRY_PARSE_NO_OPTS);
- if (jerry_value_is_error (eval_ret))
+ if (jerry_value_is_exception (eval_ret))
{
jerry_resolve_error (eval_ret);
TCMD_RSP_ERROR (ctx, NULL);
}
else
{
- jerry_value_t args[] = {eval_ret};
- jerry_value_t ret_val_print = jerry_call_function (print_function,
- jerry_create_undefined (),
- args,
- 1);
- jerry_release_value (ret_val_print);
+ jerry_value_t args[] = { eval_ret };
+ jerry_value_t ret_val_print = jerry_call (print_function, jerry_undefined (), args, 1);
+ jerry_value_free (ret_val_print);
TCMD_RSP_FINAL (ctx, NULL);
}
- jerry_release_value (eval_ret);
+ jerry_value_free (eval_ret);
bfree (buffer);
bfree (str_lens);
}
}
-void jerry_start ()
+void
+jerry_start ()
{
- 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);
- jerry_value_t global_obj_val = jerry_get_global_object ();
- jerry_value_t print_func_name_val = jerry_create_string ((jerry_char_t *) "print");
- print_function = jerry_get_property (global_obj_val, print_func_name_val);
- jerry_release_value (print_func_name_val);
- jerry_release_value (global_obj_val);
+ jerry_value_t global_obj_val = jerry_current_realm ();
+ jerry_value_t print_func_name_val = jerry_string_sz ("print");
+ print_function = jerry_object_get (global_obj_val, print_func_name_val);
+ jerry_value_free (print_func_name_val);
+ jerry_value_free (global_obj_val);
}
/* Application main entry point */
-void main_task (void *param)
+void
+main_task (void *param)
{
/* Init BSP (also init BSP on ARC core) */
queue = bsp_init ();
diff --git a/targets/esp-idf/jerry_module.c b/targets/esp-idf/jerry_module.c
index 97f92dcf..6a623d26 100644
--- a/targets/esp-idf/jerry_module.c
+++ b/targets/esp-idf/jerry_module.c
@@ -14,12 +14,12 @@
*/
#include <stdio.h>
-#include <string.h>
#include <stdlib.h>
+#include <string.h>
#include <unistd.h>
-#include "jerryscript.h"
#include "jerryscript-port.h"
+#include "jerryscript.h"
/**
* Computes the end of the directory part of a path.
@@ -102,8 +102,7 @@ typedef struct jerry_port_module_t
/**
* Native info descriptor for modules.
*/
-static const jerry_object_native_info_t jerry_port_module_native_info =
-{
+static const jerry_object_native_info_t jerry_port_module_native_info = {
.free_cb = NULL,
};
@@ -136,8 +135,8 @@ jerry_port_module_free (jerry_port_module_manager_t *manager_p, /**< module mana
if (release_all || module_p->realm == realm)
{
free (module_p->path_p);
- jerry_release_value (module_p->realm);
- jerry_release_value (module_p->module);
+ jerry_value_free (module_p->realm);
+ jerry_value_free (module_p->module);
free (module_p);
@@ -174,20 +173,18 @@ jerry_port_module_manager_init (void *user_data_p)
static void
jerry_port_module_manager_deinit (void *user_data_p) /**< context pointer to deinitialize */
{
- jerry_value_t undef = jerry_create_undefined ();
+ jerry_value_t undef = jerry_undefined ();
jerry_port_module_free ((jerry_port_module_manager_t *) user_data_p, undef);
- jerry_release_value (undef);
+ jerry_value_free (undef);
} /* jerry_port_module_manager_deinit */
/**
* Declare the context data manager for modules.
*/
-static const jerry_context_data_manager_t jerry_port_module_manager =
-{
- .init_cb = jerry_port_module_manager_init,
- .deinit_cb = jerry_port_module_manager_deinit,
- .bytes_needed = sizeof (jerry_port_module_manager_t)
-};
+static const jerry_context_data_manager_t jerry_port_module_manager = { .init_cb = jerry_port_module_manager_init,
+ .deinit_cb = jerry_port_module_manager_deinit,
+ .bytes_needed =
+ sizeof (jerry_port_module_manager_t) };
/**
* Default module resolver.
@@ -201,44 +198,43 @@ jerry_port_module_resolve (const jerry_value_t specifier, /**< module specifier
{
(void) user_p;
- jerry_port_module_t *module_p;
const jerry_char_t *base_path_p = NULL;
size_t base_path_length = 0;
+ jerry_port_module_t *module_p = jerry_object_get_native_ptr (referrer, &jerry_port_module_native_info);
- if (jerry_get_object_native_pointer (referrer, (void **) &module_p, &jerry_port_module_native_info))
+ if (module_p != NULL)
{
base_path_p = module_p->path_p;
base_path_length = module_p->base_path_length;
}
- jerry_size_t in_path_length = jerry_get_utf8_string_size (specifier);
+ jerry_size_t in_path_length = jerry_string_size (specifier, JERRY_ENCODING_UTF8);
jerry_char_t *in_path_p = (jerry_char_t *) malloc (in_path_length + 1);
- jerry_string_to_utf8_char_buffer (specifier, in_path_p, in_path_length);
+ jerry_string_to_buffer (specifier, JERRY_ENCODING_UTF8, in_path_p, in_path_length);
in_path_p[in_path_length] = '\0';
jerry_char_t *path_p = jerry_port_normalize_path (in_path_p, in_path_length, base_path_p, base_path_length);
if (path_p == NULL)
{
- return jerry_create_error (JERRY_ERROR_COMMON, (const jerry_char_t *) "Out of memory");
+ return jerry_throw_sz (JERRY_ERROR_COMMON, "Out of memory");
}
- jerry_value_t realm = jerry_get_global_object ();
+ jerry_value_t realm = jerry_current_realm ();
jerry_port_module_manager_t *manager_p;
- manager_p = (jerry_port_module_manager_t *) jerry_get_context_data (&jerry_port_module_manager);
+ manager_p = (jerry_port_module_manager_t *) jerry_context_data (&jerry_port_module_manager);
module_p = manager_p->module_head_p;
while (module_p != NULL)
{
- if (module_p->realm == realm
- && strcmp ((const char *) module_p->path_p, (const char *) path_p) == 0)
+ if (module_p->realm == realm && strcmp ((const char *) module_p->path_p, (const char *) path_p) == 0)
{
free (path_p);
free (in_path_p);
- jerry_release_value (realm);
- return jerry_acquire_value (module_p->module);
+ jerry_value_free (realm);
+ return jerry_value_copy (module_p->module);
}
module_p = module_p->next_p;
@@ -251,28 +247,24 @@ jerry_port_module_resolve (const jerry_value_t specifier, /**< module specifier
{
free (path_p);
free (in_path_p);
- jerry_release_value (realm);
- /* TODO: This is incorrect, but makes test262 module tests pass
- * (they should throw SyntaxError, but not because the module cannot be found). */
- return jerry_create_error (JERRY_ERROR_SYNTAX, (const jerry_char_t *) "Module file not found");
+ jerry_value_free (realm);
+ return jerry_throw_sz (JERRY_ERROR_SYNTAX, "Module file not found");
}
jerry_parse_options_t parse_options;
- parse_options.options = JERRY_PARSE_MODULE | JERRY_PARSE_HAS_RESOURCE;
- parse_options.resource_name = jerry_create_string_sz ((const jerry_char_t *) in_path_p, in_path_length);
+ parse_options.options = JERRY_PARSE_MODULE | JERRY_PARSE_HAS_SOURCE_NAME;
+ parse_options.source_name = jerry_string ((const jerry_char_t *) in_path_p, in_path_length, JERRY_ENCODING_UTF8);
- jerry_value_t ret_value = jerry_parse (source_p,
- source_size,
- &parse_options);
+ jerry_value_t ret_value = jerry_parse (source_p, source_size, &parse_options);
- jerry_release_value (parse_options.resource_name);
+ jerry_value_free (parse_options.source_name);
jerry_port_release_source (source_p);
free (in_path_p);
- if (jerry_value_is_error (ret_value))
+ if (jerry_value_is_exception (ret_value))
{
free (path_p);
- jerry_release_value (realm);
+ jerry_value_free (realm);
return ret_value;
}
@@ -282,9 +274,9 @@ jerry_port_module_resolve (const jerry_value_t specifier, /**< module specifier
module_p->path_p = path_p;
module_p->base_path_length = jerry_port_get_directory_end (module_p->path_p);
module_p->realm = realm;
- module_p->module = jerry_acquire_value (ret_value);
+ module_p->module = jerry_value_copy (ret_value);
- jerry_set_object_native_pointer (ret_value, module_p, &jerry_port_module_native_info);
+ jerry_object_set_native_ptr (ret_value, &jerry_port_module_native_info, module_p);
manager_p->module_head_p = module_p;
return ret_value;
@@ -297,6 +289,5 @@ void
jerry_port_module_release (const jerry_value_t realm) /**< if this argument is object, release only those modules,
* which realm value is equal to this argument. */
{
- jerry_port_module_free ((jerry_port_module_manager_t *) jerry_get_context_data (&jerry_port_module_manager),
- realm);
+ jerry_port_module_free ((jerry_port_module_manager_t *) jerry_context_data (&jerry_port_module_manager), realm);
} /* jerry_port_module_release */
diff --git a/targets/esp8266/user/jerry_extapi.c b/targets/esp8266/user/jerry_extapi.c
index 930319c1..5cccce4d 100644
--- a/targets/esp8266/user/jerry_extapi.c
+++ b/targets/esp8266/user/jerry_extapi.c
@@ -13,67 +13,64 @@
* limitations under the License.
*/
-#include <stdlib.h>
+#include "jerry_extapi.h"
+
#include <stdio.h>
+#include <stdlib.h>
+
+#include "jerryscript.h"
#include "c_types.h"
#include "gpio.h"
-#include "jerryscript.h"
-#include "jerry_extapi.h"
-
-#define __UNUSED__ __attribute__((unused))
+#define __UNUSED__ __attribute__ ((unused))
-#define DELCARE_HANDLER(NAME) \
-static jerry_value_t \
-NAME ## _handler (const jerry_call_info_t *call_info_p __UNUSED__, \
- const jerry_value_t args_p[], \
- const jerry_length_t args_cnt)
+#define DELCARE_HANDLER(NAME) \
+ static jerry_value_t NAME##_handler (const jerry_call_info_t *call_info_p __UNUSED__, \
+ const jerry_value_t args_p[], \
+ const jerry_length_t args_cnt)
-#define REGISTER_HANDLER(NAME) \
- register_native_function ( # NAME, NAME ## _handler)
+#define REGISTER_HANDLER(NAME) register_native_function (#NAME, NAME##_handler)
-DELCARE_HANDLER(assert) {
- if (args_cnt == 1
- && jerry_value_is_true (args_p[0]))
+DELCARE_HANDLER (assert)
+{
+ if (args_cnt == 1 && jerry_value_is_true (args_p[0]))
{
printf (">> Jerry assert true\r\n");
- return jerry_create_boolean (true);
+ return jerry_boolean (true);
}
printf ("Script assertion failed\n");
exit (JERRY_STANDALONE_EXIT_CODE_FAIL);
- return jerry_create_boolean (false);
+ return jerry_boolean (false);
} /* assert */
-
-DELCARE_HANDLER(print) {
+DELCARE_HANDLER (print)
+{
if (args_cnt)
{
for (jerry_length_t cc = 0; cc < args_cnt; cc++)
{
if (jerry_value_is_string (args_p[cc]))
{
- jerry_size_t size = jerry_get_utf8_string_size (args_p[0]);
+ jerry_size_t size = jerry_string_size (args_p[0], JERRY_ENCODING_UTF8);
char *buffer;
- buffer = (char *) malloc(size + 1);
+ buffer = (char *) malloc (size + 1);
- if(!buffer)
+ if (!buffer)
{
- // not enough memory for this string.
- printf("[<too-long-string>]");
- continue;
+ // not enough memory for this string.
+ printf ("[<too-long-string>]");
+ continue;
}
- jerry_string_to_utf8_char_buffer (args_p[cc],
- (jerry_char_t *) buffer,
- size);
- *(buffer + size) = 0;
- printf("%s ", buffer);
+ jerry_string_to_buffer (args_p[cc], JERRY_ENCODING_UTF8, (jerry_char_t *) buffer, size);
+ buffer[size] = '\0';
+ printf ("%s ", buffer);
free (buffer);
}
else if (jerry_value_is_number (args_p[cc]))
{
- double number = jerry_get_number_value (args_p[cc]);
+ double number = jerry_value_as_number (args_p[cc]);
if ((int) number == number)
{
printf ("%d", (int) number);
@@ -81,106 +78,105 @@ DELCARE_HANDLER(print) {
else
{
char buff[50];
- sprintf(buff, "%.10f", number);
- printf("%s", buff);
+ sprintf (buff, "%.10f", number);
+ printf ("%s", buff);
}
-
}
}
printf ("\r\n");
}
- return jerry_create_boolean (true);
+ return jerry_boolean (true);
} /* print */
-DELCARE_HANDLER(gpio_dir) {
+DELCARE_HANDLER (gpio_dir)
+{
if (args_cnt < 2)
{
- return jerry_create_boolean (false);
+ return jerry_boolean (false);
}
- int port = (int) jerry_get_number_value (args_p[0]);
- int value = (int) jerry_get_number_value (args_p[1]);
+ int port = (int) jerry_value_as_number (args_p[0]);
+ int value = (int) jerry_value_as_number (args_p[1]);
if (value)
{
- GPIO_AS_OUTPUT(1 << port);
+ GPIO_AS_OUTPUT (1 << port);
}
else
{
- GPIO_AS_INPUT(1 << port);
+ GPIO_AS_INPUT (1 << port);
}
- return jerry_create_boolean (true);
+ return jerry_boolean (true);
} /* gpio_dir */
-DELCARE_HANDLER(gpio_set) {
+DELCARE_HANDLER (gpio_set)
+{
if (args_cnt < 2)
{
- return jerry_create_boolean (false);
+ return jerry_boolean (false);
}
- int port = (int) jerry_get_number_value (args_p[0]);
- int value = (int) jerry_get_number_value (args_p[1]);
+ int port = (int) jerry_value_as_number (args_p[0]);
+ int value = (int) jerry_value_as_number (args_p[1]);
- GPIO_OUTPUT_SET(port, value);
+ GPIO_OUTPUT_SET (port, value);
- return jerry_create_boolean (true);
+ return jerry_boolean (true);
} /* gpio_set */
-
-DELCARE_HANDLER(gpio_get) {
+DELCARE_HANDLER (gpio_get)
+{
if (args_cnt < 1)
{
- return jerry_create_boolean (false);
+ return jerry_boolean (false);
}
- int port = (int) jerry_get_number_value (args_p[0]);
- int value = GPIO_INPUT_GET(port) ? 1 : 0;
+ int port = (int) jerry_value_as_number (args_p[0]);
+ int value = GPIO_INPUT_GET (port) ? 1 : 0;
- return jerry_create_number ((double) value);
+ return jerry_number ((double) value);
} /* gpio_get */
static bool
-register_native_function (const char* name,
- jerry_external_handler_t handler)
+register_native_function (const char *name, jerry_external_handler_t handler)
{
- jerry_value_t global_obj_val = jerry_get_global_object ();
- jerry_value_t reg_func_val = jerry_create_external_function (handler);
- bool bok = true;
+ jerry_value_t global_obj_val = jerry_current_realm ();
+ jerry_value_t reg_func_val = jerry_function_external (handler);
- if (!(jerry_value_is_function (reg_func_val)
- && jerry_value_is_constructor (reg_func_val)))
+ if (!(jerry_value_is_function (reg_func_val) && jerry_value_is_constructor (reg_func_val)))
{
printf ("!!! create_external_function failed !!!\r\n");
- jerry_release_value (reg_func_val);
- jerry_release_value (global_obj_val);
+ jerry_value_free (reg_func_val);
+ jerry_value_free (global_obj_val);
return false;
}
- jerry_value_t prop_name_val = jerry_create_string ((const jerry_char_t *) name);
- jerry_value_t res = jerry_set_property (global_obj_val, prop_name_val, reg_func_val);
+ jerry_value_t prop_name_val = jerry_string_sz (name);
+ jerry_value_t res = jerry_object_set (global_obj_val, prop_name_val, reg_func_val);
- jerry_release_value (reg_func_val);
- jerry_release_value (global_obj_val);
- jerry_release_value (prop_name_val);
+ jerry_value_free (reg_func_val);
+ jerry_value_free (global_obj_val);
+ jerry_value_free (prop_name_val);
- if (jerry_value_is_error (res))
+ if (jerry_value_is_exception (res))
{
printf ("!!! register_native_function failed: [%s]\r\n", name);
- jerry_release_value (res);
+ jerry_value_free (res);
return false;
}
- jerry_release_value (res);
+ jerry_value_free (res);
return true;
} /* register_native_function */
-void js_register_functions (void)
+void
+js_register_functions (void)
{
- REGISTER_HANDLER(assert);
- REGISTER_HANDLER(print);
- REGISTER_HANDLER(gpio_dir);
- REGISTER_HANDLER(gpio_set);
- REGISTER_HANDLER(gpio_get);
+ REGISTER_HANDLER (assert);
+ REGISTER_HANDLER (print);
+ REGISTER_HANDLER (gpio_dir);
+ REGISTER_HANDLER (gpio_set);
+ REGISTER_HANDLER (gpio_get);
} /* js_register_functions */
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 ();
}
diff --git a/targets/mbedos5/jerryscript-mbed/jerryscript-mbed-drivers/source/AnalogIn-js.cpp b/targets/mbedos5/jerryscript-mbed/jerryscript-mbed-drivers/source/AnalogIn-js.cpp
index d05c19ce..4c3499b8 100644
--- a/targets/mbedos5/jerryscript-mbed/jerryscript-mbed-drivers/source/AnalogIn-js.cpp
+++ b/targets/mbedos5/jerryscript-mbed/jerryscript-mbed-drivers/source/AnalogIn-js.cpp
@@ -12,9 +12,8 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-#include "jerryscript-mbed-util/logging.h"
#include "jerryscript-mbed-library-registry/wrap_tools.h"
-
+#include "jerryscript-mbed-util/logging.h"
#include "mbed.h"
/**
@@ -22,9 +21,11 @@
*
* Called if/when the AnalogIn is GC'ed.
*/
-void NAME_FOR_CLASS_NATIVE_DESTRUCTOR(AnalogIn)(void* void_ptr, jerry_object_native_info_t *info_p) {
- (void) info_p;
- delete static_cast<AnalogIn*>(void_ptr);
+void
+NAME_FOR_CLASS_NATIVE_DESTRUCTOR (AnalogIn) (void* void_ptr, jerry_object_native_info_t* info_p)
+{
+ (void) info_p;
+ delete static_cast<AnalogIn*> (void_ptr);
}
/**
@@ -32,9 +33,8 @@ void NAME_FOR_CLASS_NATIVE_DESTRUCTOR(AnalogIn)(void* void_ptr, jerry_object_nat
*
* Set AnalogIn#destructor as the free callback.
*/
-static const jerry_object_native_info_t native_obj_type_info = {
- .free_cb = NAME_FOR_CLASS_NATIVE_DESTRUCTOR(AnalogIn)
-};
+static const jerry_object_native_info_t native_obj_type_info = { .free_cb =
+ NAME_FOR_CLASS_NATIVE_DESTRUCTOR (AnalogIn) };
/**
* AnalogIn#read (native JavaScript method)
@@ -43,22 +43,22 @@ static const jerry_object_native_info_t native_obj_type_info = {
*
* @returns A floating-point value representing the current input voltage, measured as a percentage
*/
-DECLARE_CLASS_FUNCTION(AnalogIn, read) {
- CHECK_ARGUMENT_COUNT(AnalogIn, read, (args_count == 0));
+DECLARE_CLASS_FUNCTION (AnalogIn, read)
+{
+ CHECK_ARGUMENT_COUNT (AnalogIn, read, (args_count == 0));
- // Extract native AnalogIn pointer
- void* void_ptr;
- bool has_ptr = jerry_get_object_native_pointer(call_info_p->this_value, &void_ptr, &native_obj_type_info);
+ // Extract native AnalogIn pointer
+ void* void_ptr = jerry_object_get_native_ptr (call_info_p->this_value, &native_obj_type_info);
- if (!has_ptr) {
- return jerry_create_error(JERRY_ERROR_TYPE,
- (const jerry_char_t *) "Failed to get native AnalogIn pointer");
- }
+ if (void_ptr == NULL)
+ {
+ return jerry_throw_sz (JERRY_ERROR_TYPE, "Failed to get native AnalogIn pointer");
+ }
- AnalogIn* native_ptr = static_cast<AnalogIn*>(void_ptr);
+ AnalogIn* native_ptr = static_cast<AnalogIn*> (void_ptr);
- float result = native_ptr->read();
- return jerry_create_number(result);
+ float result = native_ptr->read ();
+ return jerry_number (result);
}
/**
@@ -68,22 +68,22 @@ DECLARE_CLASS_FUNCTION(AnalogIn, read) {
*
* @returns 16-bit unsigned short representing the current input voltage, normalised to a 16-bit value
*/
-DECLARE_CLASS_FUNCTION(AnalogIn, read_u16) {
- CHECK_ARGUMENT_COUNT(AnalogIn, read_u16, (args_count == 0));
+DECLARE_CLASS_FUNCTION (AnalogIn, read_u16)
+{
+ CHECK_ARGUMENT_COUNT (AnalogIn, read_u16, (args_count == 0));
- // Extract native AnalogIn pointer
- void* void_ptr;
- bool has_ptr = jerry_get_object_native_pointer(call_info_p->this_value, &void_ptr, &native_obj_type_info);
+ // Extract native AnalogIn pointer
+ void* void_ptr = jerry_object_get_native_ptr (call_info_p->this_value, &native_obj_type_info);
- if (!has_ptr) {
- return jerry_create_error(JERRY_ERROR_TYPE,
- (const jerry_char_t *) "Failed to get native AnalogIn pointer");
- }
+ if (void_ptr == NULL)
+ {
+ return jerry_throw_sz (JERRY_ERROR_TYPE, "Failed to get native AnalogIn pointer");
+ }
- AnalogIn* native_ptr = static_cast<AnalogIn*>(void_ptr);
+ AnalogIn* native_ptr = static_cast<AnalogIn*> (void_ptr);
- uint16_t result = native_ptr->read_u16();
- return jerry_create_number(result);
+ uint16_t result = native_ptr->read_u16 ();
+ return jerry_number (result);
}
/**
@@ -92,22 +92,23 @@ DECLARE_CLASS_FUNCTION(AnalogIn, read_u16) {
* @param pin_name mbed pin to connect the AnalogIn to.
* @returns a JavaScript object representing a AnalogIn.
*/
-DECLARE_CLASS_CONSTRUCTOR(AnalogIn) {
- CHECK_ARGUMENT_COUNT(AnalogIn, __constructor, args_count == 1);
- CHECK_ARGUMENT_TYPE_ALWAYS(AnalogIn, __constructor, 0, number);
+DECLARE_CLASS_CONSTRUCTOR (AnalogIn)
+{
+ CHECK_ARGUMENT_COUNT (AnalogIn, __constructor, args_count == 1);
+ CHECK_ARGUMENT_TYPE_ALWAYS (AnalogIn, __constructor, 0, number);
- PinName pin_name = PinName(jerry_get_number_value(args[0]));
+ PinName pin_name = PinName (jerry_value_as_number (args[0]));
- // create native object
- AnalogIn* native_ptr = new AnalogIn(pin_name);
+ // create native object
+ AnalogIn* native_ptr = new AnalogIn (pin_name);
- // create the jerryscript object
- jerry_value_t js_object = jerry_create_object();
- jerry_set_object_native_pointer(js_object, native_ptr, &native_obj_type_info);
+ // create the jerryscript object
+ jerry_value_t js_object = jerry_object ();
+ jerry_object_set_native_ptr (js_object, &native_obj_type_info, native_ptr);
- // attach methods
- ATTACH_CLASS_FUNCTION(js_object, AnalogIn, read);
- ATTACH_CLASS_FUNCTION(js_object, AnalogIn, read_u16);
+ // attach methods
+ ATTACH_CLASS_FUNCTION (js_object, AnalogIn, read);
+ ATTACH_CLASS_FUNCTION (js_object, AnalogIn, read_u16);
- return js_object;
+ return js_object;
}
diff --git a/targets/mbedos5/jerryscript-mbed/jerryscript-mbed-drivers/source/DigitalOut-js.cpp b/targets/mbedos5/jerryscript-mbed/jerryscript-mbed-drivers/source/DigitalOut-js.cpp
index a521f00e..1ab03707 100644
--- a/targets/mbedos5/jerryscript-mbed/jerryscript-mbed-drivers/source/DigitalOut-js.cpp
+++ b/targets/mbedos5/jerryscript-mbed/jerryscript-mbed-drivers/source/DigitalOut-js.cpp
@@ -12,9 +12,8 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-#include "jerryscript-mbed-util/logging.h"
#include "jerryscript-mbed-library-registry/wrap_tools.h"
-
+#include "jerryscript-mbed-util/logging.h"
#include "mbed.h"
/**
@@ -22,9 +21,11 @@
*
* Called if/when the DigitalOut is GC'ed.
*/
-void NAME_FOR_CLASS_NATIVE_DESTRUCTOR(DigitalOut)(void* void_ptr, jerry_object_native_info_t *info_p) {
- (void) info_p;
- delete static_cast<DigitalOut*>(void_ptr);
+void
+NAME_FOR_CLASS_NATIVE_DESTRUCTOR (DigitalOut) (void* void_ptr, jerry_object_native_info_t* info_p)
+{
+ (void) info_p;
+ delete static_cast<DigitalOut*> (void_ptr);
}
/**
@@ -32,9 +33,8 @@ void NAME_FOR_CLASS_NATIVE_DESTRUCTOR(DigitalOut)(void* void_ptr, jerry_object_n
*
* Set DigitalOut#destructor as the free callback.
*/
-static const jerry_object_native_info_t native_obj_type_info = {
- .free_cb = NAME_FOR_CLASS_NATIVE_DESTRUCTOR(DigitalOut)
-};
+static const jerry_object_native_info_t native_obj_type_info = { .free_cb =
+ NAME_FOR_CLASS_NATIVE_DESTRUCTOR (DigitalOut) };
/**
* DigitalOut#write (native JavaScript method)
@@ -45,25 +45,25 @@ static const jerry_object_native_info_t native_obj_type_info = {
* respectively
* @returns undefined, or an error if invalid arguments are provided.
*/
-DECLARE_CLASS_FUNCTION(DigitalOut, write) {
- CHECK_ARGUMENT_COUNT(DigitalOut, write, (args_count == 1));
- CHECK_ARGUMENT_TYPE_ALWAYS(DigitalOut, write, 0, number);
+DECLARE_CLASS_FUNCTION (DigitalOut, write)
+{
+ CHECK_ARGUMENT_COUNT (DigitalOut, write, (args_count == 1));
+ CHECK_ARGUMENT_TYPE_ALWAYS (DigitalOut, write, 0, number);
- // Extract native DigitalOut pointer
- void* void_ptr;
- bool has_ptr = jerry_get_object_native_pointer(call_info_p->this_value, &void_ptr, &native_obj_type_info);
+ // Extract native DigitalOut pointer
+ void* void_ptr = jerry_object_get_native_ptr (call_info_p->this_value, &native_obj_type_info);
- if (!has_ptr) {
- return jerry_create_error(JERRY_ERROR_TYPE,
- (const jerry_char_t *) "Failed to get native DigitalOut pointer");
- }
+ if (void_ptr == NULL)
+ {
+ return jerry_throw_sz (JERRY_ERROR_TYPE, "Failed to get native DigitalOut pointer");
+ }
- DigitalOut* native_ptr = static_cast<DigitalOut*>(void_ptr);
+ DigitalOut* native_ptr = static_cast<DigitalOut*> (void_ptr);
- int arg0 = jerry_get_number_value(args[0]);
- native_ptr->write(arg0);
+ int arg0 = jerry_value_as_number (args[0]);
+ native_ptr->write (arg0);
- return jerry_create_undefined();
+ return jerry_undefined ();
}
/**
@@ -73,22 +73,22 @@ DECLARE_CLASS_FUNCTION(DigitalOut, write) {
*
* @returns 1 if the pin is currently high, or 0 if the pin is currently low.
*/
-DECLARE_CLASS_FUNCTION(DigitalOut, read) {
- CHECK_ARGUMENT_COUNT(DigitalOut, read, (args_count == 0));
+DECLARE_CLASS_FUNCTION (DigitalOut, read)
+{
+ CHECK_ARGUMENT_COUNT (DigitalOut, read, (args_count == 0));
- // Extract native DigitalOut pointer
- void* void_ptr;
- bool has_ptr = jerry_get_object_native_pointer(call_info_p->this_value, &void_ptr, &native_obj_type_info);
+ // Extract native DigitalOut pointer
+ void* void_ptr = jerry_object_get_native_ptr (call_info_p->this_value, &native_obj_type_info);
- if (!has_ptr) {
- return jerry_create_error(JERRY_ERROR_TYPE,
- (const jerry_char_t *) "Failed to get native DigitalOut pointer");
- }
+ if (void_ptr == NULL)
+ {
+ return jerry_throw_sz (JERRY_ERROR_TYPE, "Failed to get native DigitalOut pointer");
+ }
- DigitalOut* native_ptr = static_cast<DigitalOut*>(void_ptr);
+ DigitalOut* native_ptr = static_cast<DigitalOut*> (void_ptr);
- int result = native_ptr->read();
- return jerry_create_number(result);
+ int result = native_ptr->read ();
+ return jerry_number (result);
}
/**
@@ -97,22 +97,22 @@ DECLARE_CLASS_FUNCTION(DigitalOut, read) {
* @returns 0 if the DigitalOut is set to NC, or 1 if it is connected to an
* actual pin
*/
-DECLARE_CLASS_FUNCTION(DigitalOut, is_connected) {
- CHECK_ARGUMENT_COUNT(DigitalOut, is_connected, (args_count == 0));
+DECLARE_CLASS_FUNCTION (DigitalOut, is_connected)
+{
+ CHECK_ARGUMENT_COUNT (DigitalOut, is_connected, (args_count == 0));
- // Extract native DigitalOut pointer
- void* void_ptr;
- bool has_ptr = jerry_get_object_native_pointer(call_info_p->this_value, &void_ptr, &native_obj_type_info);
+ // Extract native DigitalOut pointer
+ void* void_ptr = jerry_object_get_native_ptr (call_info_p->this_value, &native_obj_type_info);
- if (!has_ptr) {
- return jerry_create_error(JERRY_ERROR_TYPE,
- (const jerry_char_t *) "Failed to get native DigitalOut pointer");
- }
+ if (void_ptr == NULL)
+ {
+ return jerry_throw_sz (JERRY_ERROR_TYPE, "Failed to get native DigitalOut pointer");
+ }
- DigitalOut* native_ptr = static_cast<DigitalOut*>(void_ptr);
+ DigitalOut* native_ptr = static_cast<DigitalOut*> (void_ptr);
- int result = native_ptr->is_connected();
- return jerry_create_number(result);
+ int result = native_ptr->is_connected ();
+ return jerry_number (result);
}
/**
@@ -122,35 +122,37 @@ DECLARE_CLASS_FUNCTION(DigitalOut, is_connected) {
* @param value (optional) Initial value of the DigitalOut.
* @returns a JavaScript object representing a DigitalOut.
*/
-DECLARE_CLASS_CONSTRUCTOR(DigitalOut) {
- CHECK_ARGUMENT_COUNT(DigitalOut, __constructor, (args_count == 1 || args_count == 2));
- CHECK_ARGUMENT_TYPE_ALWAYS(DigitalOut, __constructor, 0, number);
- CHECK_ARGUMENT_TYPE_ON_CONDITION(DigitalOut, __constructor, 1, number, (args_count == 2));
-
- DigitalOut* native_ptr;
-
- // Call correct overload of DigitalOut::DigitalOut depending on the
- // arguments passed.
- PinName pin_name = PinName(jerry_get_number_value(args[0]));
-
- switch (args_count) {
- case 1:
- native_ptr = new DigitalOut(pin_name);
- break;
- case 2:
- int value = static_cast<int>(jerry_get_number_value(args[1]));
- native_ptr = new DigitalOut(pin_name, value);
- break;
- }
-
- // create the jerryscript object
- jerry_value_t js_object = jerry_create_object();
- jerry_set_object_native_pointer(js_object, native_ptr, &native_obj_type_info);
-
- // attach methods
- ATTACH_CLASS_FUNCTION(js_object, DigitalOut, write);
- ATTACH_CLASS_FUNCTION(js_object, DigitalOut, read);
- ATTACH_CLASS_FUNCTION(js_object, DigitalOut, is_connected);
-
- return js_object;
+DECLARE_CLASS_CONSTRUCTOR (DigitalOut)
+{
+ CHECK_ARGUMENT_COUNT (DigitalOut, __constructor, (args_count == 1 || args_count == 2));
+ CHECK_ARGUMENT_TYPE_ALWAYS (DigitalOut, __constructor, 0, number);
+ CHECK_ARGUMENT_TYPE_ON_CONDITION (DigitalOut, __constructor, 1, number, (args_count == 2));
+
+ DigitalOut* native_ptr;
+
+ // Call correct overload of DigitalOut::DigitalOut depending on the
+ // arguments passed.
+ PinName pin_name = PinName (jerry_value_as_number (args[0]));
+
+ switch (args_count)
+ {
+ case 1:
+ native_ptr = new DigitalOut (pin_name);
+ break;
+ case 2:
+ int value = static_cast<int> (jerry_value_as_number (args[1]));
+ native_ptr = new DigitalOut (pin_name, value);
+ break;
+ }
+
+ // create the jerryscript object
+ jerry_value_t js_object = jerry_object ();
+ jerry_object_set_native_ptr (js_object, &native_obj_type_info, native_ptr);
+
+ // attach methods
+ ATTACH_CLASS_FUNCTION (js_object, DigitalOut, write);
+ ATTACH_CLASS_FUNCTION (js_object, DigitalOut, read);
+ ATTACH_CLASS_FUNCTION (js_object, DigitalOut, is_connected);
+
+ return js_object;
}
diff --git a/targets/mbedos5/jerryscript-mbed/jerryscript-mbed-drivers/source/I2C-js.cpp b/targets/mbedos5/jerryscript-mbed/jerryscript-mbed-drivers/source/I2C-js.cpp
index f622f0a6..90cbc83c 100644
--- a/targets/mbedos5/jerryscript-mbed/jerryscript-mbed-drivers/source/I2C-js.cpp
+++ b/targets/mbedos5/jerryscript-mbed/jerryscript-mbed-drivers/source/I2C-js.cpp
@@ -12,10 +12,10 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-#include "jerryscript-mbed-util/logging.h"
#include "jerryscript-mbed-drivers/I2C-js.h"
-#include "jerryscript-mbed-library-registry/wrap_tools.h"
+#include "jerryscript-mbed-library-registry/wrap_tools.h"
+#include "jerryscript-mbed-util/logging.h"
#include "mbed.h"
/**
@@ -23,9 +23,11 @@
*
* Called if/when the I2C object is GC'ed.
*/
-void NAME_FOR_CLASS_NATIVE_DESTRUCTOR(I2C) (void *void_ptr, jerry_object_native_info_t *info_p) {
- (void) info_p;
- delete static_cast<I2C*>(void_ptr);
+void
+NAME_FOR_CLASS_NATIVE_DESTRUCTOR (I2C) (void *void_ptr, jerry_object_native_info_t *info_p)
+{
+ (void) info_p;
+ delete static_cast<I2C *> (void_ptr);
}
/**
@@ -33,9 +35,7 @@ void NAME_FOR_CLASS_NATIVE_DESTRUCTOR(I2C) (void *void_ptr, jerry_object_native_
*
* Set I2C#destructor as the free callback.
*/
-static const jerry_object_native_info_t native_obj_type_info = {
- .free_cb = NAME_FOR_CLASS_NATIVE_DESTRUCTOR(I2C)
-};
+static const jerry_object_native_info_t native_obj_type_info = { .free_cb = NAME_FOR_CLASS_NATIVE_DESTRUCTOR (I2C) };
/**
* I2C#frequency (native JavaScript method)
@@ -44,25 +44,25 @@ static const jerry_object_native_info_t native_obj_type_info = {
*
* @param frequency New I2C Frequency
*/
-DECLARE_CLASS_FUNCTION(I2C, frequency) {
- CHECK_ARGUMENT_COUNT(I2C, frequency, (args_count == 1));
- CHECK_ARGUMENT_TYPE_ALWAYS(I2C, frequency, 0, number);
+DECLARE_CLASS_FUNCTION (I2C, frequency)
+{
+ CHECK_ARGUMENT_COUNT (I2C, frequency, (args_count == 1));
+ CHECK_ARGUMENT_TYPE_ALWAYS (I2C, frequency, 0, number);
- // Unwrap native I2C object
- void *void_ptr;
- bool has_ptr = jerry_get_object_native_pointer(call_info_p->this_value, &void_ptr, &native_obj_type_info);
+ // Unwrap native I2C object
+ void *void_ptr = jerry_object_get_native_ptr (call_info_p->this_value, &native_obj_type_info);
- if (!has_ptr) {
- return jerry_create_error(JERRY_ERROR_TYPE,
- (const jerry_char_t *) "Failed to get native I2C pointer");
- }
+ if (void_ptr == NULL)
+ {
+ return jerry_throw_sz (JERRY_ERROR_TYPE, "Failed to get native I2C pointer");
+ }
- I2C *native_ptr = static_cast<I2C*>(void_ptr);
+ I2C *native_ptr = static_cast<I2C *> (void_ptr);
- int hz = jerry_get_number_value(args[0]);
- native_ptr->frequency(hz);
+ int hz = jerry_value_as_number (args[0]);
+ native_ptr->frequency (hz);
- return jerry_create_undefined();
+ return jerry_undefined ();
}
/**
@@ -86,77 +86,84 @@ DECLARE_CLASS_FUNCTION(I2C, frequency) {
*
* @returns array: Data read from the I2C bus
*/
-DECLARE_CLASS_FUNCTION(I2C, read) {
- CHECK_ARGUMENT_COUNT(I2C, read, (args_count == 1 || args_count == 3 || args_count == 4));
-
- if (args_count == 1) {
- CHECK_ARGUMENT_TYPE_ALWAYS(I2C, read, 0, number);
- void *void_ptr;
- bool has_ptr = jerry_get_object_native_pointer(call_info_p->this_value, &void_ptr, &native_obj_type_info);
-
- if (!has_ptr) {
- return jerry_create_error(JERRY_ERROR_TYPE,
- (const jerry_char_t *) "Failed to get native I2C pointer");
- }
+DECLARE_CLASS_FUNCTION (I2C, read)
+{
+ CHECK_ARGUMENT_COUNT (I2C, read, (args_count == 1 || args_count == 3 || args_count == 4));
+
+ if (args_count == 1)
+ {
+ CHECK_ARGUMENT_TYPE_ALWAYS (I2C, read, 0, number);
+ void *void_ptr = jerry_object_get_native_ptr (call_info_p->this_value, &native_obj_type_info);
+
+ if (void_ptr == NULL)
+ {
+ return jerry_throw_sz (JERRY_ERROR_TYPE, "Failed to get native I2C pointer");
+ }
- I2C *native_ptr = static_cast<I2C*>(void_ptr);
+ I2C *native_ptr = static_cast<I2C *> (void_ptr);
- int data = jerry_get_number_value(args[0]);
- int result = native_ptr->read(data);
+ int data = jerry_value_as_number (args[0]);
+ int result = native_ptr->read (data);
- return jerry_create_number(result);
- } else {
- CHECK_ARGUMENT_TYPE_ALWAYS(I2C, read, 0, number);
- CHECK_ARGUMENT_TYPE_ALWAYS(I2C, read, 1, array);
- CHECK_ARGUMENT_TYPE_ALWAYS(I2C, read, 2, number);
+ return jerry_number (result);
+ }
+ else
+ {
+ CHECK_ARGUMENT_TYPE_ALWAYS (I2C, read, 0, number);
+ CHECK_ARGUMENT_TYPE_ALWAYS (I2C, read, 1, array);
+ CHECK_ARGUMENT_TYPE_ALWAYS (I2C, read, 2, number);
- CHECK_ARGUMENT_TYPE_ON_CONDITION(I2C, read, 3, boolean, (args_count == 4));
+ CHECK_ARGUMENT_TYPE_ON_CONDITION (I2C, read, 3, boolean, (args_count == 4));
- void *void_ptr;
- bool has_ptr = jerry_get_object_native_pointer(call_info_p->this_value, &void_ptr, &native_obj_type_info);
+ void *void_ptr = jerry_object_get_native_ptr (call_info_p->this_value, &native_obj_type_info);
- if (!has_ptr) {
- return jerry_create_error(JERRY_ERROR_TYPE,
- (const jerry_char_t *) "Failed to get native I2C pointer");
- }
+ if (void_ptr == NULL)
+ {
+ return jerry_throw_sz (JERRY_ERROR_TYPE, "Failed to get native I2C pointer");
+ }
- I2C *native_ptr = static_cast<I2C*>(void_ptr);
+ I2C *native_ptr = static_cast<I2C *> (void_ptr);
- const uint32_t data_len = jerry_get_array_length(args[1]);
+ const uint32_t data_len = jerry_array_length (args[1]);
- int address = jerry_get_number_value(args[0]);
- int length = jerry_get_number_value(args[2]);
+ int address = jerry_value_as_number (args[0]);
+ int length = jerry_value_as_number (args[2]);
- char *data = new char[data_len];
+ char *data = new char[data_len];
- bool repeated = false;
- if (args_count == 4) {
- repeated = jerry_value_is_true(args[3]);
- }
+ bool repeated = false;
+ if (args_count == 4)
+ {
+ repeated = jerry_value_is_true (args[3]);
+ }
- int result = native_ptr->read(address, data, length, repeated);
+ int result = native_ptr->read (address, data, length, repeated);
- jerry_value_t out_array = jerry_create_array(data_len);
+ jerry_value_t out_array = jerry_array (data_len);
- for (uint32_t i = 0; i < data_len; i++) {
- jerry_value_t val = jerry_create_number(double(data[i]));
- jerry_release_value(jerry_set_property_by_index(out_array, i, val));
- jerry_release_value(val);
- }
+ for (uint32_t i = 0; i < data_len; i++)
+ {
+ jerry_value_t val = jerry_number (double (data[i]));
+ jerry_value_free (jerry_object_set_index (out_array, i, val));
+ jerry_value_free (val);
+ }
- delete[] data;
+ delete[] data;
- if (result == 0) {
- // ACK
- return out_array;
- } else {
- // NACK
- const char *error_msg = "NACK received from I2C bus";
+ if (result == 0)
+ {
+ // ACK
+ return out_array;
+ }
+ else
+ {
+ // NACK
+ const char *error_msg = "NACK received from I2C bus";
- jerry_release_value(out_array);
- return jerry_create_error(JERRY_ERROR_COMMON, reinterpret_cast<const jerry_char_t *>(error_msg));
- }
+ jerry_value_free (out_array);
+ return jerry_throw_sz (JERRY_ERROR_COMMON, error_msg);
}
+ }
}
/**
@@ -179,65 +186,68 @@ DECLARE_CLASS_FUNCTION(I2C, read) {
*
* @returns 0 on success, non-0 on failure
*/
-DECLARE_CLASS_FUNCTION(I2C, write) {
- CHECK_ARGUMENT_COUNT(I2C, write, (args_count == 1 || args_count == 3 || args_count == 4));
+DECLARE_CLASS_FUNCTION (I2C, write)
+{
+ CHECK_ARGUMENT_COUNT (I2C, write, (args_count == 1 || args_count == 3 || args_count == 4));
- if (args_count == 1) {
- CHECK_ARGUMENT_TYPE_ALWAYS(I2C, write, 0, number);
+ if (args_count == 1)
+ {
+ CHECK_ARGUMENT_TYPE_ALWAYS (I2C, write, 0, number);
- // Extract native I2C object
- void *void_ptr;
- bool has_ptr = jerry_get_object_native_pointer(call_info_p->this_value, &void_ptr, &native_obj_type_info);
+ // Extract native I2C object
+ void *void_ptr = jerry_object_get_native_ptr (call_info_p->this_value, &native_obj_type_info);
- if (!has_ptr) {
- return jerry_create_error(JERRY_ERROR_TYPE,
- (const jerry_char_t *) "Failed to get native I2C pointer");
- }
+ if (void_ptr == NULL)
+ {
+ return jerry_throw_sz (JERRY_ERROR_TYPE, "Failed to get native I2C pointer");
+ }
- I2C *native_ptr = static_cast<I2C*>(void_ptr);
+ I2C *native_ptr = static_cast<I2C *> (void_ptr);
- // Unwrap arguments
- int data = jerry_get_number_value(args[0]);
+ // Unwrap arguments
+ int data = jerry_value_as_number (args[0]);
- int result = native_ptr->write(data);
- return jerry_create_number(result);
- } else {
- // 3 or 4
- CHECK_ARGUMENT_TYPE_ALWAYS(I2C, write, 0, number);
- CHECK_ARGUMENT_TYPE_ALWAYS(I2C, write, 1, array);
- CHECK_ARGUMENT_TYPE_ALWAYS(I2C, write, 2, number);
- CHECK_ARGUMENT_TYPE_ON_CONDITION(I2C, write, 3, boolean, (args_count == 4));
+ int result = native_ptr->write (data);
+ return jerry_number (result);
+ }
+ else
+ {
+ // 3 or 4
+ CHECK_ARGUMENT_TYPE_ALWAYS (I2C, write, 0, number);
+ CHECK_ARGUMENT_TYPE_ALWAYS (I2C, write, 1, array);
+ CHECK_ARGUMENT_TYPE_ALWAYS (I2C, write, 2, number);
+ CHECK_ARGUMENT_TYPE_ON_CONDITION (I2C, write, 3, boolean, (args_count == 4));
- // Extract native I2C object
- void *void_ptr;
- bool has_ptr = jerry_get_object_native_pointer(call_info_p->this_value, &void_ptr, &native_obj_type_info);
+ // Extract native I2C object
+ void *void_ptr = jerry_object_get_native_ptr (call_info_p->this_value, &native_obj_type_info);
- if (!has_ptr) {
- return jerry_create_error(JERRY_ERROR_TYPE,
- (const jerry_char_t *) "Failed to get native I2C pointer");
- }
+ if (void_ptr != NULL)
+ {
+ return jerry_throw_sz (JERRY_ERROR_TYPE, "Failed to get native I2C pointer");
+ }
- I2C *native_ptr = static_cast<I2C*>(void_ptr);
+ I2C *native_ptr = static_cast<I2C *> (void_ptr);
- // Unwrap arguments
- int address = jerry_get_number_value(args[0]);
- const uint32_t data_len = jerry_get_array_length(args[1]);
- int length = jerry_get_number_value(args[2]);
- bool repeated = args_count == 4 && jerry_value_is_true(args[3]);
+ // Unwrap arguments
+ int address = jerry_value_as_number (args[0]);
+ const uint32_t data_len = jerry_array_length (args[1]);
+ int length = jerry_value_as_number (args[2]);
+ bool repeated = args_count == 4 && jerry_value_is_true (args[3]);
- // Construct data byte array
- char *data = new char[data_len];
- for (uint32_t i = 0; i < data_len; i++) {
- data[i] = jerry_get_number_value(jerry_get_property_by_index(args[1], i));
- }
+ // Construct data byte array
+ char *data = new char[data_len];
+ for (uint32_t i = 0; i < data_len; i++)
+ {
+ data[i] = jerry_value_as_number (jerry_object_get_index (args[1], i));
+ }
- int result = native_ptr->write(address, data, length, repeated);
+ int result = native_ptr->write (address, data, length, repeated);
- // free dynamically allocated resources
- delete[] data;
+ // free dynamically allocated resources
+ delete[] data;
- return jerry_create_number(result);
- }
+ return jerry_number (result);
+ }
}
/**
@@ -245,22 +255,22 @@ DECLARE_CLASS_FUNCTION(I2C, write) {
*
* Creates a start condition on the I2C bus.
*/
-DECLARE_CLASS_FUNCTION(I2C, start) {
- CHECK_ARGUMENT_COUNT(I2C, start, (args_count == 0));
+DECLARE_CLASS_FUNCTION (I2C, start)
+{
+ CHECK_ARGUMENT_COUNT (I2C, start, (args_count == 0));
- // Extract native I2C object
- void *void_ptr;
- bool has_ptr = jerry_get_object_native_pointer(call_info_p->this_value, &void_ptr, &native_obj_type_info);
+ // Extract native I2C object
+ void *void_ptr = jerry_object_get_native_ptr (call_info_p->this_value, &native_obj_type_info);
- if (!has_ptr) {
- return jerry_create_error(JERRY_ERROR_TYPE,
- (const jerry_char_t *) "Failed to get native I2C pointer");
- }
+ if (void_ptr == NULL)
+ {
+ return jerry_throw_sz (JERRY_ERROR_TYPE, "Failed to get native I2C pointer");
+ }
- I2C *native_ptr = static_cast<I2C*>(void_ptr);
+ I2C *native_ptr = static_cast<I2C *> (void_ptr);
- native_ptr->start();
- return jerry_create_undefined();
+ native_ptr->start ();
+ return jerry_undefined ();
}
/**
@@ -268,22 +278,22 @@ DECLARE_CLASS_FUNCTION(I2C, start) {
*
* Creates a stop condition on the I2C bus.
*/
-DECLARE_CLASS_FUNCTION(I2C, stop) {
- CHECK_ARGUMENT_COUNT(I2C, stop, (args_count == 0));
+DECLARE_CLASS_FUNCTION (I2C, stop)
+{
+ CHECK_ARGUMENT_COUNT (I2C, stop, (args_count == 0));
- // Extract native I2C object
- void *void_ptr;
- bool has_ptr = jerry_get_object_native_pointer(call_info_p->this_value, &void_ptr, &native_obj_type_info);
+ // Extract native I2C object
+ void *void_ptr = jerry_object_get_native_ptr (call_info_p->this_value, &native_obj_type_info);
- if (!has_ptr) {
- return jerry_create_error(JERRY_ERROR_TYPE,
- (const jerry_char_t *) "Failed to get native I2C pointer");
- }
+ if (void_ptr == NULL)
+ {
+ return jerry_throw_sz (JERRY_ERROR_TYPE, "Failed to get native I2C pointer");
+ }
- I2C *native_ptr = static_cast<I2C*>(void_ptr);
+ I2C *native_ptr = static_cast<I2C *> (void_ptr);
- native_ptr->stop();
- return jerry_create_undefined();
+ native_ptr->stop ();
+ return jerry_undefined ();
}
/**
@@ -293,24 +303,25 @@ DECLARE_CLASS_FUNCTION(I2C, stop) {
* @param scl mbed pin for I2C clock
* @returns a JavaScript object representing the I2C bus.
*/
-DECLARE_CLASS_CONSTRUCTOR(I2C) {
- CHECK_ARGUMENT_COUNT(I2C, __constructor, (args_count == 2));
- CHECK_ARGUMENT_TYPE_ALWAYS(I2C, __constructor, 0, number);
- CHECK_ARGUMENT_TYPE_ALWAYS(I2C, __constructor, 1, number);
+DECLARE_CLASS_CONSTRUCTOR (I2C)
+{
+ CHECK_ARGUMENT_COUNT (I2C, __constructor, (args_count == 2));
+ CHECK_ARGUMENT_TYPE_ALWAYS (I2C, __constructor, 0, number);
+ CHECK_ARGUMENT_TYPE_ALWAYS (I2C, __constructor, 1, number);
- int sda = jerry_get_number_value(args[0]);
- int scl = jerry_get_number_value(args[1]);
+ int sda = jerry_value_as_number (args[0]);
+ int scl = jerry_value_as_number (args[1]);
- I2C *native_ptr = new I2C((PinName)sda, (PinName)scl);
+ I2C *native_ptr = new I2C ((PinName) sda, (PinName) scl);
- jerry_value_t js_object = jerry_create_object();
- jerry_set_object_native_pointer(js_object, native_ptr, &native_obj_type_info);
+ jerry_value_t js_object = jerry_object ();
+ jerry_object_set_native_ptr (js_object, &native_obj_type_info, native_ptr);
- ATTACH_CLASS_FUNCTION(js_object, I2C, frequency);
- ATTACH_CLASS_FUNCTION(js_object, I2C, read);
- ATTACH_CLASS_FUNCTION(js_object, I2C, write);
- ATTACH_CLASS_FUNCTION(js_object, I2C, start);
- ATTACH_CLASS_FUNCTION(js_object, I2C, stop);
+ ATTACH_CLASS_FUNCTION (js_object, I2C, frequency);
+ ATTACH_CLASS_FUNCTION (js_object, I2C, read);
+ ATTACH_CLASS_FUNCTION (js_object, I2C, write);
+ ATTACH_CLASS_FUNCTION (js_object, I2C, start);
+ ATTACH_CLASS_FUNCTION (js_object, I2C, stop);
- return js_object;
+ return js_object;
}
diff --git a/targets/mbedos5/jerryscript-mbed/jerryscript-mbed-drivers/source/InterruptIn-js.cpp b/targets/mbedos5/jerryscript-mbed/jerryscript-mbed-drivers/source/InterruptIn-js.cpp
index a1961dfe..2d7c1b2e 100644
--- a/targets/mbedos5/jerryscript-mbed/jerryscript-mbed-drivers/source/InterruptIn-js.cpp
+++ b/targets/mbedos5/jerryscript-mbed/jerryscript-mbed-drivers/source/InterruptIn-js.cpp
@@ -12,10 +12,9 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-#include "jerryscript-mbed-util/logging.h"
#include "jerryscript-mbed-event-loop/EventLoop.h"
#include "jerryscript-mbed-library-registry/wrap_tools.h"
-
+#include "jerryscript-mbed-util/logging.h"
#include "mbed.h"
/**
@@ -23,13 +22,15 @@
*
* Called if/when the InterruptIn object is GC'ed.
*/
-void NAME_FOR_CLASS_NATIVE_DESTRUCTOR(InterruptIn) (void *void_ptr, jerry_object_native_info_t *info_p) {
- (void) info_p;
- InterruptIn *native_ptr = static_cast<InterruptIn*>(void_ptr);
-
- native_ptr->rise(0);
- native_ptr->fall(0);
- delete native_ptr;
+void
+NAME_FOR_CLASS_NATIVE_DESTRUCTOR (InterruptIn) (void *void_ptr, jerry_object_native_info_t *info_p)
+{
+ (void) info_p;
+ InterruptIn *native_ptr = static_cast<InterruptIn *> (void_ptr);
+
+ native_ptr->rise (0);
+ native_ptr->fall (0);
+ delete native_ptr;
}
/**
@@ -37,9 +38,8 @@ void NAME_FOR_CLASS_NATIVE_DESTRUCTOR(InterruptIn) (void *void_ptr, jerry_object
*
* Set InterruptIn#destructor as the free callback.
*/
-static const jerry_object_native_info_t native_obj_type_info = {
- .free_cb = NAME_FOR_CLASS_NATIVE_DESTRUCTOR(InterruptIn)
-};
+static const jerry_object_native_info_t native_obj_type_info = { .free_cb =
+ NAME_FOR_CLASS_NATIVE_DESTRUCTOR (InterruptIn) };
/**
* InterruptIn#rise (native JavaScript method)
@@ -48,62 +48,63 @@ static const jerry_object_native_info_t native_obj_type_info = {
*
* @param cb Callback function, or null to detach previously attached callback.
*/
-DECLARE_CLASS_FUNCTION(InterruptIn, rise) {
- CHECK_ARGUMENT_COUNT(InterruptIn, rise, (args_count == 1));
-
- // Detach the rise callback when InterruptIn::rise(null) is called
- if (jerry_value_is_null(args[0])) {
- void *void_ptr;
- bool has_ptr = jerry_get_object_native_pointer(call_info_p->this_value, &void_ptr, &native_obj_type_info);
+DECLARE_CLASS_FUNCTION (InterruptIn, rise)
+{
+ CHECK_ARGUMENT_COUNT (InterruptIn, rise, (args_count == 1));
+
+ // Detach the rise callback when InterruptIn::rise(null) is called
+ if (jerry_value_is_null (args[0]))
+ {
+ void *void_ptr = jerry_object_get_native_ptr (call_info_p->this_value, &native_obj_type_info);
+
+ if (void_ptr == NULL)
+ {
+ return jerry_throw_sz (JERRY_ERROR_TYPE, "Failed to get native InterruptIn pointer");
+ }
- if (!has_ptr) {
- return jerry_create_error(JERRY_ERROR_TYPE,
- (const jerry_char_t *) "Failed to get native InterruptIn pointer");
- }
+ InterruptIn *native_ptr = static_cast<InterruptIn *> (void_ptr);
- InterruptIn *native_ptr = static_cast<InterruptIn*>(void_ptr);
+ jerry_value_t property_name = jerry_string_sz ("cb_rise");
+ jerry_value_t cb_func = jerry_object_get (call_info_p->this_value, property_name);
+ jerry_value_free (property_name);
- jerry_value_t property_name = jerry_create_string((const jerry_char_t*)"cb_rise");
- jerry_value_t cb_func = jerry_get_property(call_info_p->this_value, property_name);
- jerry_release_value(property_name);
+ // Only drop the callback if it exists
+ if (jerry_value_is_function (cb_func))
+ {
+ // Ensure that the EventLoop frees memory used by the callback.
+ mbed::js::EventLoop::getInstance ().dropCallback (cb_func);
+ }
+ jerry_value_free (cb_func);
- // Only drop the callback if it exists
- if (jerry_value_is_function(cb_func)) {
- // Ensure that the EventLoop frees memory used by the callback.
- mbed::js::EventLoop::getInstance().dropCallback(cb_func);
- }
- jerry_release_value(cb_func);
+ native_ptr->rise (0);
- native_ptr->rise(0);
+ return jerry_undefined ();
+ }
- return jerry_create_undefined();
- }
+ // Assuming we actually have a callback now...
+ CHECK_ARGUMENT_TYPE_ALWAYS (InterruptIn, rise, 0, function);
- // Assuming we actually have a callback now...
- CHECK_ARGUMENT_TYPE_ALWAYS(InterruptIn, rise, 0, function);
+ void *void_ptr = jerry_object_get_native_ptr (call_info_p->this_value, &native_obj_type_info);
- void *void_ptr;
- bool has_ptr = jerry_get_object_native_pointer(call_info_p->this_value, &void_ptr, &native_obj_type_info);
-
- if (!has_ptr) {
- return jerry_create_error(JERRY_ERROR_TYPE,
- (const jerry_char_t *) "Failed to get native InterruptIn pointer");
- }
+ if (void_ptr == NULL)
+ {
+ return jerry_throw_sz (JERRY_ERROR_TYPE, "Failed to get native InterruptIn pointer");
+ }
- InterruptIn *native_ptr = static_cast<InterruptIn*>(void_ptr);
+ InterruptIn *native_ptr = static_cast<InterruptIn *> (void_ptr);
- jerry_value_t f = args[0];
+ jerry_value_t f = args[0];
- // Pass the function to EventLoop.
- mbed::Callback<void()> cb = mbed::js::EventLoop::getInstance().wrapFunction(f);
- native_ptr->rise(cb);
+ // Pass the function to EventLoop.
+ mbed::Callback<void ()> cb = mbed::js::EventLoop::getInstance ().wrapFunction (f);
+ native_ptr->rise (cb);
- // Keep track of our callback internally.
- jerry_value_t property_name = jerry_create_string((const jerry_char_t*)"cb_rise");
- jerry_release_value(jerry_set_property(call_info_p->this_value, property_name, f));
- jerry_release_value(property_name);
+ // Keep track of our callback internally.
+ jerry_value_t property_name = jerry_string_sz ("cb_rise");
+ jerry_value_free (jerry_object_set (call_info_p->this_value, property_name, f));
+ jerry_value_free (property_name);
- return jerry_create_undefined();
+ return jerry_undefined ();
}
/**
@@ -113,62 +114,63 @@ DECLARE_CLASS_FUNCTION(InterruptIn, rise) {
*
* @param cb Callback function, or null to detach previously attached callback.
*/
-DECLARE_CLASS_FUNCTION(InterruptIn, fall) {
- CHECK_ARGUMENT_COUNT(InterruptIn, fall, (args_count == 1));
+DECLARE_CLASS_FUNCTION (InterruptIn, fall)
+{
+ CHECK_ARGUMENT_COUNT (InterruptIn, fall, (args_count == 1));
+
+ // Detach the fall callback when InterruptIn::fall(null) is called
+ if (jerry_value_is_null (args[0]))
+ {
+ void *void_ptr = jerry_object_get_native_ptr (call_info_p->this_value, &native_obj_type_info);
+
+ if (void_ptr == NULL)
+ {
+ return jerry_throw_sz (JERRY_ERROR_TYPE, "Failed to get native InterruptIn pointer");
+ }
- // Detach the fall callback when InterruptIn::fall(null) is called
- if (jerry_value_is_null(args[0])) {
- void *void_ptr;
- bool has_ptr = jerry_get_object_native_pointer(call_info_p->this_value, &void_ptr, &native_obj_type_info);
+ InterruptIn *native_ptr = static_cast<InterruptIn *> (void_ptr);
- if (!has_ptr) {
- return jerry_create_error(JERRY_ERROR_TYPE,
- (const jerry_char_t *) "Failed to get native InterruptIn pointer");
- }
+ jerry_value_t property_name = jerry_string_sz ("cb_fall");
+ jerry_value_t cb_func = jerry_object_get (call_info_p->this_value, property_name);
+ jerry_value_free (property_name);
- InterruptIn *native_ptr = static_cast<InterruptIn*>(void_ptr);
+ // Only drop the callback if it exists
+ if (jerry_value_is_function (cb_func))
+ {
+ // Ensure that the EventLoop frees memory used by the callback.
+ mbed::js::EventLoop::getInstance ().dropCallback (cb_func);
+ }
+ jerry_value_free (cb_func);
- jerry_value_t property_name = jerry_create_string((const jerry_char_t*)"cb_fall");
- jerry_value_t cb_func = jerry_get_property(call_info_p->this_value, property_name);
- jerry_release_value(property_name);
+ native_ptr->fall (0);
- // Only drop the callback if it exists
- if (jerry_value_is_function(cb_func)) {
- // Ensure that the EventLoop frees memory used by the callback.
- mbed::js::EventLoop::getInstance().dropCallback(cb_func);
- }
- jerry_release_value(cb_func);
+ return jerry_undefined ();
+ }
- native_ptr->fall(0);
+ // Assuming we actually have a callback now...
+ CHECK_ARGUMENT_TYPE_ALWAYS (InterruptIn, fall, 0, function);
- return jerry_create_undefined();
- }
+ void *void_ptr = jerry_object_get_native_ptr (call_info_p->this_value, &native_obj_type_info);
- // Assuming we actually have a callback now...
- CHECK_ARGUMENT_TYPE_ALWAYS(InterruptIn, fall, 0, function);
+ if (void_ptr == NULL)
+ {
+ return jerry_throw_sz (JERRY_ERROR_TYPE, "Failed to get native InterruptIn pointer");
+ }
- void *void_ptr;
- bool has_ptr = jerry_get_object_native_pointer(call_info_p->this_value, &void_ptr, &native_obj_type_info);
-
- if (!has_ptr) {
- return jerry_create_error(JERRY_ERROR_TYPE,
- (const jerry_char_t *) "Failed to get native InterruptIn pointer");
- }
+ InterruptIn *native_ptr = static_cast<InterruptIn *> (void_ptr);
- InterruptIn *native_ptr = static_cast<InterruptIn*>(void_ptr);
+ jerry_value_t f = args[0];
- jerry_value_t f = args[0];
+ // Pass the function to EventLoop.
+ mbed::Callback<void ()> cb = mbed::js::EventLoop::getInstance ().wrapFunction (f);
+ native_ptr->fall (cb);
- // Pass the function to EventLoop.
- mbed::Callback<void()> cb = mbed::js::EventLoop::getInstance().wrapFunction(f);
- native_ptr->fall(cb);
+ // Keep track of our callback internally.
+ jerry_value_t property_name = jerry_string_sz ("cb_fall");
+ jerry_value_free (jerry_object_set (call_info_p->this_value, property_name, f));
+ jerry_value_free (property_name);
- // Keep track of our callback internally.
- jerry_value_t property_name = jerry_create_string((const jerry_char_t*)"cb_fall");
- jerry_release_value(jerry_set_property(call_info_p->this_value, property_name, f));
- jerry_release_value(property_name);
-
- return jerry_create_undefined();
+ return jerry_undefined ();
}
/**
@@ -178,24 +180,24 @@ DECLARE_CLASS_FUNCTION(InterruptIn, fall) {
*
* @param mode PullUp, PullDown, PullNone
*/
-DECLARE_CLASS_FUNCTION(InterruptIn, mode) {
- CHECK_ARGUMENT_COUNT(InterruptIn, mode, (args_count == 1));
- CHECK_ARGUMENT_TYPE_ALWAYS(InterruptIn, mode, 0, number);
+DECLARE_CLASS_FUNCTION (InterruptIn, mode)
+{
+ CHECK_ARGUMENT_COUNT (InterruptIn, mode, (args_count == 1));
+ CHECK_ARGUMENT_TYPE_ALWAYS (InterruptIn, mode, 0, number);
- void *void_ptr;
- bool has_ptr = jerry_get_object_native_pointer(call_info_p->this_value, &void_ptr, &native_obj_type_info);
+ void *void_ptr = jerry_object_get_native_ptr (call_info_p->this_value, &native_obj_type_info);
- if (!has_ptr) {
- return jerry_create_error(JERRY_ERROR_TYPE,
- (const jerry_char_t *) "Failed to get native InterruptIn pointer");
- }
+ if (void_ptr == NULL)
+ {
+ return jerry_throw_sz (JERRY_ERROR_TYPE, "Failed to get native InterruptIn pointer");
+ }
- InterruptIn *native_ptr = static_cast<InterruptIn*>(void_ptr);
+ InterruptIn *native_ptr = static_cast<InterruptIn *> (void_ptr);
- int pull = jerry_get_number_value(args[0]);
- native_ptr->mode((PinMode)pull);
+ int pull = jerry_value_as_number (args[0]);
+ native_ptr->mode ((PinMode) pull);
- return jerry_create_undefined();
+ return jerry_undefined ();
}
/**
@@ -203,21 +205,21 @@ DECLARE_CLASS_FUNCTION(InterruptIn, mode) {
*
* Disable IRQ. See InterruptIn.h in mbed-os sources for more details.
*/
-DECLARE_CLASS_FUNCTION(InterruptIn, disable_irq) {
- CHECK_ARGUMENT_COUNT(InterruptIn, disable_irq, (args_count == 0));
+DECLARE_CLASS_FUNCTION (InterruptIn, disable_irq)
+{
+ CHECK_ARGUMENT_COUNT (InterruptIn, disable_irq, (args_count == 0));
- void *void_ptr;
- bool has_ptr = jerry_get_object_native_pointer(call_info_p->this_value, &void_ptr, &native_obj_type_info);
+ void *void_ptr = jerry_object_get_native_ptr (call_info_p->this_value, &native_obj_type_info);
- if (!has_ptr) {
- return jerry_create_error(JERRY_ERROR_TYPE,
- (const jerry_char_t *) "Failed to get native InterruptIn pointer");
- }
+ if (void_ptr == NULL)
+ {
+ return jerry_throw_sz (JERRY_ERROR_TYPE, "Failed to get native InterruptIn pointer");
+ }
- InterruptIn *native_ptr = static_cast<InterruptIn*>(void_ptr);
+ InterruptIn *native_ptr = static_cast<InterruptIn *> (void_ptr);
- native_ptr->disable_irq();
- return jerry_create_undefined();
+ native_ptr->disable_irq ();
+ return jerry_undefined ();
}
/**
@@ -225,21 +227,21 @@ DECLARE_CLASS_FUNCTION(InterruptIn, disable_irq) {
*
* Enable IRQ. See InterruptIn.h in mbed-os sources for more details.
*/
-DECLARE_CLASS_FUNCTION(InterruptIn, enable_irq) {
- CHECK_ARGUMENT_COUNT(InterruptIn, enable_irq, (args_count == 0));
+DECLARE_CLASS_FUNCTION (InterruptIn, enable_irq)
+{
+ CHECK_ARGUMENT_COUNT (InterruptIn, enable_irq, (args_count == 0));
- void *void_ptr;
- bool has_ptr = jerry_get_object_native_pointer(call_info_p->this_value, &void_ptr, &native_obj_type_info);
+ void *void_ptr = jerry_object_get_native_ptr (call_info_p->this_value, &native_obj_type_info);
- if (!has_ptr) {
- return jerry_create_error(JERRY_ERROR_TYPE,
- (const jerry_char_t *) "Failed to get native InterruptIn pointer");
- }
+ if (void_ptr == NULL)
+ {
+ return jerry_throw_sz (JERRY_ERROR_TYPE, "Failed to get native InterruptIn pointer");
+ }
- InterruptIn *native_ptr = static_cast<InterruptIn*>(void_ptr);
+ InterruptIn *native_ptr = static_cast<InterruptIn *> (void_ptr);
- native_ptr->enable_irq();
- return jerry_create_undefined();
+ native_ptr->enable_irq ();
+ return jerry_undefined ();
}
/**
@@ -249,21 +251,22 @@ DECLARE_CLASS_FUNCTION(InterruptIn, enable_irq) {
*
* @returns JavaScript object wrapping InterruptIn native object
*/
-DECLARE_CLASS_CONSTRUCTOR(InterruptIn) {
- CHECK_ARGUMENT_COUNT(InterruptIn, __constructor, (args_count == 1));
- CHECK_ARGUMENT_TYPE_ALWAYS(InterruptIn, __constructor, 0, number);
- int pin = jerry_get_number_value(args[0]);
+DECLARE_CLASS_CONSTRUCTOR (InterruptIn)
+{
+ CHECK_ARGUMENT_COUNT (InterruptIn, __constructor, (args_count == 1));
+ CHECK_ARGUMENT_TYPE_ALWAYS (InterruptIn, __constructor, 0, number);
+ int pin = jerry_value_as_number (args[0]);
- InterruptIn *native_ptr = new InterruptIn((PinName)pin);
- jerry_value_t js_object = jerry_create_object();
+ InterruptIn *native_ptr = new InterruptIn ((PinName) pin);
+ jerry_value_t js_object = jerry_object ();
- jerry_set_object_native_pointer(js_object, native_ptr, &native_obj_type_info);
+ jerry_object_set_native_ptr (js_object, &native_obj_type_info, native_ptr);
- ATTACH_CLASS_FUNCTION(js_object, InterruptIn, rise);
- ATTACH_CLASS_FUNCTION(js_object, InterruptIn, fall);
- ATTACH_CLASS_FUNCTION(js_object, InterruptIn, mode);
- ATTACH_CLASS_FUNCTION(js_object, InterruptIn, enable_irq);
- ATTACH_CLASS_FUNCTION(js_object, InterruptIn, disable_irq);
+ ATTACH_CLASS_FUNCTION (js_object, InterruptIn, rise);
+ ATTACH_CLASS_FUNCTION (js_object, InterruptIn, fall);
+ ATTACH_CLASS_FUNCTION (js_object, InterruptIn, mode);
+ ATTACH_CLASS_FUNCTION (js_object, InterruptIn, enable_irq);
+ ATTACH_CLASS_FUNCTION (js_object, InterruptIn, disable_irq);
- return js_object;
+ return js_object;
}
diff --git a/targets/mbedos5/jerryscript-mbed/jerryscript-mbed-drivers/source/PwmOut-js.cpp b/targets/mbedos5/jerryscript-mbed/jerryscript-mbed-drivers/source/PwmOut-js.cpp
index fab24157..de332c5b 100644
--- a/targets/mbedos5/jerryscript-mbed/jerryscript-mbed-drivers/source/PwmOut-js.cpp
+++ b/targets/mbedos5/jerryscript-mbed/jerryscript-mbed-drivers/source/PwmOut-js.cpp
@@ -12,9 +12,8 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-#include "jerryscript-mbed-util/logging.h"
#include "jerryscript-mbed-library-registry/wrap_tools.h"
-
+#include "jerryscript-mbed-util/logging.h"
#include "mbed.h"
/**
@@ -22,9 +21,11 @@
*
* Called if/when the PwmOut is GC'ed.
*/
-void NAME_FOR_CLASS_NATIVE_DESTRUCTOR(PwmOut)(void* void_ptr, jerry_object_native_info_t *info_p) {
- (void) info_p;
- delete static_cast<PwmOut*>(void_ptr);
+void
+NAME_FOR_CLASS_NATIVE_DESTRUCTOR (PwmOut) (void* void_ptr, jerry_object_native_info_t* info_p)
+{
+ (void) info_p;
+ delete static_cast<PwmOut*> (void_ptr);
}
/**
@@ -32,9 +33,7 @@ void NAME_FOR_CLASS_NATIVE_DESTRUCTOR(PwmOut)(void* void_ptr, jerry_object_nativ
*
* Set PwmOut#destructor as the free callback.
*/
-static const jerry_object_native_info_t native_obj_type_info = {
- .free_cb = NAME_FOR_CLASS_NATIVE_DESTRUCTOR(PwmOut)
-};
+static const jerry_object_native_info_t native_obj_type_info = { .free_cb = NAME_FOR_CLASS_NATIVE_DESTRUCTOR (PwmOut) };
/**
* PwmOut#write (native JavaScript method)
@@ -47,25 +46,25 @@ static const jerry_object_native_info_t native_obj_type_info = {
* Values outside this range will be saturated to 0.0f or 1.0f
* @returns undefined
*/
-DECLARE_CLASS_FUNCTION(PwmOut, write) {
- CHECK_ARGUMENT_COUNT(PwmOut, write, (args_count == 1));
- CHECK_ARGUMENT_TYPE_ALWAYS(PwmOut, write, 0, number);
+DECLARE_CLASS_FUNCTION (PwmOut, write)
+{
+ CHECK_ARGUMENT_COUNT (PwmOut, write, (args_count == 1));
+ CHECK_ARGUMENT_TYPE_ALWAYS (PwmOut, write, 0, number);
- // Extract native PwmOut pointer
- void* void_ptr;
- bool has_ptr = jerry_get_object_native_pointer(call_info_p->this_value, &void_ptr, &native_obj_type_info);
+ // Extract native PwmOut pointer
+ void* void_ptr = jerry_object_get_native_ptr (call_info_p->this_value, &native_obj_type_info);
- if (!has_ptr) {
- return jerry_create_error(JERRY_ERROR_TYPE,
- (const jerry_char_t *) "Failed to get native PwmOut pointer");
- }
+ if (void_ptr == NULL)
+ {
+ return jerry_throw_sz (JERRY_ERROR_TYPE, "Failed to get native PwmOut pointer");
+ }
- PwmOut* native_ptr = static_cast<PwmOut*>(void_ptr);
+ PwmOut* native_ptr = static_cast<PwmOut*> (void_ptr);
- double arg0 = jerry_get_number_value(args[0]);
- native_ptr->write(static_cast<float>(arg0));
+ double arg0 = jerry_value_as_number (args[0]);
+ native_ptr->write (static_cast<float> (arg0));
- return jerry_create_undefined();
+ return jerry_undefined ();
}
/**
@@ -81,22 +80,22 @@ DECLARE_CLASS_FUNCTION(PwmOut, write) {
* @note
* This value may not match exactly the value set by a previous <write>.
*/
-DECLARE_CLASS_FUNCTION(PwmOut, read) {
- CHECK_ARGUMENT_COUNT(PwmOut, read, (args_count == 0));
+DECLARE_CLASS_FUNCTION (PwmOut, read)
+{
+ CHECK_ARGUMENT_COUNT (PwmOut, read, (args_count == 0));
- // Extract native PwmOut pointer
- void* void_ptr;
- bool has_ptr = jerry_get_object_native_pointer(call_info_p->this_value, &void_ptr, &native_obj_type_info);
+ // Extract native PwmOut pointer
+ void* void_ptr = jerry_object_get_native_ptr (call_info_p->this_value, &native_obj_type_info);
- if (!has_ptr) {
- return jerry_create_error(JERRY_ERROR_TYPE,
- (const jerry_char_t *) "Failed to get native PwmOut pointer");
- }
+ if (void_ptr == NULL)
+ {
+ return jerry_throw_sz (JERRY_ERROR_TYPE, "Failed to get native PwmOut pointer");
+ }
- PwmOut* native_ptr = static_cast<PwmOut*>(void_ptr);
+ PwmOut* native_ptr = static_cast<PwmOut*> (void_ptr);
- float result = native_ptr->read();
- return jerry_create_number(result);
+ float result = native_ptr->read ();
+ return jerry_number (result);
}
/**
@@ -108,25 +107,25 @@ DECLARE_CLASS_FUNCTION(PwmOut, read) {
* The resolution is currently in microseconds; periods smaller than this
* will be set to zero.
*/
-DECLARE_CLASS_FUNCTION(PwmOut, period) {
- CHECK_ARGUMENT_COUNT(PwmOut, period, (args_count == 1));
- CHECK_ARGUMENT_TYPE_ALWAYS(PwmOut, period, 0, number);
+DECLARE_CLASS_FUNCTION (PwmOut, period)
+{
+ CHECK_ARGUMENT_COUNT (PwmOut, period, (args_count == 1));
+ CHECK_ARGUMENT_TYPE_ALWAYS (PwmOut, period, 0, number);
- // Extract native PwmOut pointer
- void* void_ptr;
- bool has_ptr = jerry_get_object_native_pointer(call_info_p->this_value, &void_ptr, &native_obj_type_info);
+ // Extract native PwmOut pointer
+ void* void_ptr = jerry_object_get_native_ptr (call_info_p->this_value, &native_obj_type_info);
- if (!has_ptr) {
- return jerry_create_error(JERRY_ERROR_TYPE,
- (const jerry_char_t *) "Failed to get native PwmOut pointer");
- }
+ if (void_ptr == NULL)
+ {
+ return jerry_throw_sz (JERRY_ERROR_TYPE, "Failed to get native PwmOut pointer");
+ }
- PwmOut* native_ptr = static_cast<PwmOut*>(void_ptr);
+ PwmOut* native_ptr = static_cast<PwmOut*> (void_ptr);
- double arg0 = jerry_get_number_value(args[0]);
- native_ptr->period(static_cast<float>(arg0));
+ double arg0 = jerry_value_as_number (args[0]);
+ native_ptr->period (static_cast<float> (arg0));
- return jerry_create_undefined();
+ return jerry_undefined ();
}
/**
@@ -134,25 +133,25 @@ DECLARE_CLASS_FUNCTION(PwmOut, period) {
*
* Set the PWM period, specified in milli-seconds (int), keeping the duty cycle the same.
*/
-DECLARE_CLASS_FUNCTION(PwmOut, period_ms) {
- CHECK_ARGUMENT_COUNT(PwmOut, period_ms, (args_count == 1));
- CHECK_ARGUMENT_TYPE_ALWAYS(PwmOut, period_ms, 0, number);
+DECLARE_CLASS_FUNCTION (PwmOut, period_ms)
+{
+ CHECK_ARGUMENT_COUNT (PwmOut, period_ms, (args_count == 1));
+ CHECK_ARGUMENT_TYPE_ALWAYS (PwmOut, period_ms, 0, number);
- // Extract native PwmOut pointer
- void* void_ptr;
- bool has_ptr = jerry_get_object_native_pointer(call_info_p->this_value, &void_ptr, &native_obj_type_info);
+ // Extract native PwmOut pointer
+ void* void_ptr = jerry_object_get_native_ptr (call_info_p->this_value, &native_obj_type_info);
- if (!has_ptr) {
- return jerry_create_error(JERRY_ERROR_TYPE,
- (const jerry_char_t *) "Failed to get native PwmOut pointer");
- }
+ if (void_ptr == NULL)
+ {
+ return jerry_throw_sz (JERRY_ERROR_TYPE, "Failed to get native PwmOut pointer");
+ }
- PwmOut* native_ptr = static_cast<PwmOut*>(void_ptr);
+ PwmOut* native_ptr = static_cast<PwmOut*> (void_ptr);
- double arg0 = jerry_get_number_value(args[0]);
- native_ptr->period_ms(static_cast<int>(arg0));
+ double arg0 = jerry_value_as_number (args[0]);
+ native_ptr->period_ms (static_cast<int> (arg0));
- return jerry_create_undefined();
+ return jerry_undefined ();
}
/**
@@ -160,25 +159,25 @@ DECLARE_CLASS_FUNCTION(PwmOut, period_ms) {
*
* Set the PWM period, specified in micro-seconds (int), keeping the duty cycle the same.
*/
-DECLARE_CLASS_FUNCTION(PwmOut, period_us) {
- CHECK_ARGUMENT_COUNT(PwmOut, period_us, (args_count == 1));
- CHECK_ARGUMENT_TYPE_ALWAYS(PwmOut, period_us, 0, number);
+DECLARE_CLASS_FUNCTION (PwmOut, period_us)
+{
+ CHECK_ARGUMENT_COUNT (PwmOut, period_us, (args_count == 1));
+ CHECK_ARGUMENT_TYPE_ALWAYS (PwmOut, period_us, 0, number);
- // Extract native PwmOut pointer
- void* void_ptr;
- bool has_ptr = jerry_get_object_native_pointer(call_info_p->this_value, &void_ptr, &native_obj_type_info);
+ // Extract native PwmOut pointer
+ void* void_ptr = jerry_object_get_native_ptr (call_info_p->this_value, &native_obj_type_info);
- if (!has_ptr) {
- return jerry_create_error(JERRY_ERROR_TYPE,
- (const jerry_char_t *) "Failed to get native PwmOut pointer");
- }
+ if (void_ptr == NULL)
+ {
+ return jerry_throw_sz (JERRY_ERROR_TYPE, "Failed to get native PwmOut pointer");
+ }
- PwmOut* native_ptr = static_cast<PwmOut*>(void_ptr);
+ PwmOut* native_ptr = static_cast<PwmOut*> (void_ptr);
- double arg0 = jerry_get_number_value(args[0]);
- native_ptr->period_us(static_cast<int>(arg0));
+ double arg0 = jerry_value_as_number (args[0]);
+ native_ptr->period_us (static_cast<int> (arg0));
- return jerry_create_undefined();
+ return jerry_undefined ();
}
/**
@@ -186,25 +185,25 @@ DECLARE_CLASS_FUNCTION(PwmOut, period_us) {
*
* Set the PWM pulsewidth, specified in seconds (float), keeping the period the same.
*/
-DECLARE_CLASS_FUNCTION(PwmOut, pulsewidth) {
- CHECK_ARGUMENT_COUNT(PwmOut, pulsewidth, (args_count == 1));
- CHECK_ARGUMENT_TYPE_ALWAYS(PwmOut, pulsewidth, 0, number);
+DECLARE_CLASS_FUNCTION (PwmOut, pulsewidth)
+{
+ CHECK_ARGUMENT_COUNT (PwmOut, pulsewidth, (args_count == 1));
+ CHECK_ARGUMENT_TYPE_ALWAYS (PwmOut, pulsewidth, 0, number);
- // Extract native PwmOut pointer
- void* void_ptr;
- bool has_ptr = jerry_get_object_native_pointer(call_info_p->this_value, &void_ptr, &native_obj_type_info);
+ // Extract native PwmOut pointer
+ void* void_ptr = jerry_object_get_native_ptr (call_info_p->this_value, &native_obj_type_info);
- if (!has_ptr) {
- return jerry_create_error(JERRY_ERROR_TYPE,
- (const jerry_char_t *) "Failed to get native PwmOut pointer");
- }
+ if (void_ptr == NULL)
+ {
+ return jerry_throw_sz (JERRY_ERROR_TYPE, "Failed to get native PwmOut pointer");
+ }
- PwmOut* native_ptr = static_cast<PwmOut*>(void_ptr);
+ PwmOut* native_ptr = static_cast<PwmOut*> (void_ptr);
- double arg0 = jerry_get_number_value(args[0]);
- native_ptr->pulsewidth(static_cast<float>(arg0));
+ double arg0 = jerry_value_as_number (args[0]);
+ native_ptr->pulsewidth (static_cast<float> (arg0));
- return jerry_create_undefined();
+ return jerry_undefined ();
}
/**
@@ -212,25 +211,25 @@ DECLARE_CLASS_FUNCTION(PwmOut, pulsewidth) {
*
* Set the PWM pulsewidth, specified in milli-seconds (int), keeping the period the same.
*/
-DECLARE_CLASS_FUNCTION(PwmOut, pulsewidth_ms) {
- CHECK_ARGUMENT_COUNT(PwmOut, pulsewidth_ms, (args_count == 1));
- CHECK_ARGUMENT_TYPE_ALWAYS(PwmOut, pulsewidth_ms, 0, number);
+DECLARE_CLASS_FUNCTION (PwmOut, pulsewidth_ms)
+{
+ CHECK_ARGUMENT_COUNT (PwmOut, pulsewidth_ms, (args_count == 1));
+ CHECK_ARGUMENT_TYPE_ALWAYS (PwmOut, pulsewidth_ms, 0, number);
- // Extract native PwmOut pointer
- void* void_ptr;
- bool has_ptr = jerry_get_object_native_pointer(call_info_p->this_value, &void_ptr, &native_obj_type_info);
+ // Extract native PwmOut pointer
+ void* void_ptr = jerry_object_get_native_ptr (call_info_p->this_value, &native_obj_type_info);
- if (!has_ptr) {
- return jerry_create_error(JERRY_ERROR_TYPE,
- (const jerry_char_t *) "Failed to get native PwmOut pointer");
- }
+ if (void_ptr == NULL)
+ {
+ return jerry_throw_sz (JERRY_ERROR_TYPE, "Failed to get native PwmOut pointer");
+ }
- PwmOut* native_ptr = static_cast<PwmOut*>(void_ptr);
+ PwmOut* native_ptr = static_cast<PwmOut*> (void_ptr);
- double arg0 = jerry_get_number_value(args[0]);
- native_ptr->pulsewidth_ms(static_cast<int>(arg0));
+ double arg0 = jerry_value_as_number (args[0]);
+ native_ptr->pulsewidth_ms (static_cast<int> (arg0));
- return jerry_create_undefined();
+ return jerry_undefined ();
}
/**
@@ -238,25 +237,25 @@ DECLARE_CLASS_FUNCTION(PwmOut, pulsewidth_ms) {
*
* Set the PWM pulsewidth, specified in micro-seconds (int), keeping the period the same.
*/
-DECLARE_CLASS_FUNCTION(PwmOut, pulsewidth_us) {
- CHECK_ARGUMENT_COUNT(PwmOut, pulsewidth_us, (args_count == 1));
- CHECK_ARGUMENT_TYPE_ALWAYS(PwmOut, pulsewidth_us, 0, number);
+DECLARE_CLASS_FUNCTION (PwmOut, pulsewidth_us)
+{
+ CHECK_ARGUMENT_COUNT (PwmOut, pulsewidth_us, (args_count == 1));
+ CHECK_ARGUMENT_TYPE_ALWAYS (PwmOut, pulsewidth_us, 0, number);
- // Extract native PwmOut pointer
- void* void_ptr;
- bool has_ptr = jerry_get_object_native_pointer(call_info_p->this_value, &void_ptr, &native_obj_type_info);
+ // Extract native PwmOut pointer
+ void* void_ptr = jerry_object_get_native_ptr (call_info_p->this_value, &native_obj_type_info);
- if (!has_ptr) {
- return jerry_create_error(JERRY_ERROR_TYPE,
- (const jerry_char_t *) "Failed to get native PwmOut pointer");
- }
+ if (void_ptr == NULL)
+ {
+ return jerry_throw_sz (JERRY_ERROR_TYPE, "Failed to get native PwmOut pointer");
+ }
- PwmOut* native_ptr = static_cast<PwmOut*>(void_ptr);
+ PwmOut* native_ptr = static_cast<PwmOut*> (void_ptr);
- double arg0 = jerry_get_number_value(args[0]);
- native_ptr->pulsewidth_us(static_cast<int>(arg0));
+ double arg0 = jerry_value_as_number (args[0]);
+ native_ptr->pulsewidth_us (static_cast<int> (arg0));
- return jerry_create_undefined();
+ return jerry_undefined ();
}
/**
@@ -265,28 +264,29 @@ DECLARE_CLASS_FUNCTION(PwmOut, pulsewidth_us) {
* @param pin_name mbed pin to connect the PwmOut to.
* @returns a JavaScript object representing a PwmOut.
*/
-DECLARE_CLASS_CONSTRUCTOR(PwmOut) {
- CHECK_ARGUMENT_COUNT(PwmOut, __constructor, args_count == 1);
- CHECK_ARGUMENT_TYPE_ALWAYS(PwmOut, __constructor, 0, number);
-
- PinName pin_name = PinName(jerry_get_number_value(args[0]));
-
- // Create the native object
- PwmOut* native_ptr = new PwmOut(pin_name);
-
- // create the jerryscript object
- jerry_value_t js_object = jerry_create_object();
- jerry_set_object_native_pointer(js_object, native_ptr, &native_obj_type_info);
-
- // attach methods
- ATTACH_CLASS_FUNCTION(js_object, PwmOut, write);
- ATTACH_CLASS_FUNCTION(js_object, PwmOut, read);
- ATTACH_CLASS_FUNCTION(js_object, PwmOut, period);
- ATTACH_CLASS_FUNCTION(js_object, PwmOut, period_ms);
- ATTACH_CLASS_FUNCTION(js_object, PwmOut, period_us);
- ATTACH_CLASS_FUNCTION(js_object, PwmOut, pulsewidth);
- ATTACH_CLASS_FUNCTION(js_object, PwmOut, pulsewidth_ms);
- ATTACH_CLASS_FUNCTION(js_object, PwmOut, pulsewidth_us);
-
- return js_object;
+DECLARE_CLASS_CONSTRUCTOR (PwmOut)
+{
+ CHECK_ARGUMENT_COUNT (PwmOut, __constructor, args_count == 1);
+ CHECK_ARGUMENT_TYPE_ALWAYS (PwmOut, __constructor, 0, number);
+
+ PinName pin_name = PinName (jerry_value_as_number (args[0]));
+
+ // Create the native object
+ PwmOut* native_ptr = new PwmOut (pin_name);
+
+ // create the jerryscript object
+ jerry_value_t js_object = jerry_object ();
+ jerry_object_set_native_ptr (js_object, &native_obj_type_info, native_ptr);
+
+ // attach methods
+ ATTACH_CLASS_FUNCTION (js_object, PwmOut, write);
+ ATTACH_CLASS_FUNCTION (js_object, PwmOut, read);
+ ATTACH_CLASS_FUNCTION (js_object, PwmOut, period);
+ ATTACH_CLASS_FUNCTION (js_object, PwmOut, period_ms);
+ ATTACH_CLASS_FUNCTION (js_object, PwmOut, period_us);
+ ATTACH_CLASS_FUNCTION (js_object, PwmOut, pulsewidth);
+ ATTACH_CLASS_FUNCTION (js_object, PwmOut, pulsewidth_ms);
+ ATTACH_CLASS_FUNCTION (js_object, PwmOut, pulsewidth_us);
+
+ return js_object;
}
diff --git a/targets/mbedos5/jerryscript-mbed/jerryscript-mbed-drivers/source/setInterval-js.cpp b/targets/mbedos5/jerryscript-mbed/jerryscript-mbed-drivers/source/setInterval-js.cpp
index b79063df..c8d9a5c3 100644
--- a/targets/mbedos5/jerryscript-mbed/jerryscript-mbed-drivers/source/setInterval-js.cpp
+++ b/targets/mbedos5/jerryscript-mbed/jerryscript-mbed-drivers/source/setInterval-js.cpp
@@ -13,6 +13,7 @@
* limitations under the License.
*/
#include "jerryscript-mbed-drivers/setInterval-js.h"
+
#include "jerryscript-mbed-event-loop/EventLoop.h"
/**
@@ -23,26 +24,33 @@
* @param function Function to call
* @param interval Time between function calls, in ms.
*/
-DECLARE_GLOBAL_FUNCTION(setInterval) {
- CHECK_ARGUMENT_COUNT(global, setInterval, (args_count == 2));
- CHECK_ARGUMENT_TYPE_ALWAYS(global, setInterval, 0, function);
- CHECK_ARGUMENT_TYPE_ALWAYS(global, setInterval, 1, number);
+DECLARE_GLOBAL_FUNCTION (setInterval)
+{
+ CHECK_ARGUMENT_COUNT (global, setInterval, (args_count == 2));
+ CHECK_ARGUMENT_TYPE_ALWAYS (global, setInterval, 0, function);
+ CHECK_ARGUMENT_TYPE_ALWAYS (global, setInterval, 1, number);
- int interval = int(jerry_get_number_value(args[1]));
+ int interval = int (jerry_value_as_number (args[1]));
- int id = mbed::js::EventLoop::getInstance().getQueue().call_every(interval, jerry_call_function, args[0], jerry_create_null(), (jerry_value_t*)NULL, 0);
+ int id = mbed::js::EventLoop::getInstance ().getQueue ().call_every (interval,
+ jerry_call,
+ args[0],
+ jerry_null (),
+ (jerry_value_t*) NULL,
+ 0);
- jerry_value_t result = jerry_set_property_by_index(call_info_p->function, id, args[0]);
+ jerry_value_t result = jerry_object_set_index (call_info_p->function, id, args[0]);
- if (jerry_value_is_error(result)) {
- jerry_release_value(result);
- mbed::js::EventLoop::getInstance().getQueue().cancel(id);
+ if (jerry_value_is_exception (result))
+ {
+ jerry_value_free (result);
+ mbed::js::EventLoop::getInstance ().getQueue ().cancel (id);
- return jerry_create_error(JERRY_ERROR_TYPE, (const jerry_char_t *) "Failed to run setInterval");
- }
+ return jerry_throw_sz (JERRY_ERROR_TYPE, "Failed to run setInterval");
+ }
- jerry_release_value(result);
- return jerry_create_number(id);
+ jerry_value_free (result);
+ return jerry_number (id);
}
/**
@@ -52,22 +60,23 @@ DECLARE_GLOBAL_FUNCTION(setInterval) {
*
* @param id ID of the timeout event, returned by setInterval.
*/
-DECLARE_GLOBAL_FUNCTION(clearInterval) {
- CHECK_ARGUMENT_COUNT(global, clearInterval, (args_count == 1));
- CHECK_ARGUMENT_TYPE_ALWAYS(global, clearInterval, 0, number);
+DECLARE_GLOBAL_FUNCTION (clearInterval)
+{
+ CHECK_ARGUMENT_COUNT (global, clearInterval, (args_count == 1));
+ CHECK_ARGUMENT_TYPE_ALWAYS (global, clearInterval, 0, number);
- int id = int(jerry_get_number_value(args[0]));
+ int id = int (jerry_value_as_number (args[0]));
- mbed::js::EventLoop::getInstance().getQueue().cancel(id);
+ mbed::js::EventLoop::getInstance ().getQueue ().cancel (id);
- jerry_value_t global_obj = jerry_get_global_object();
- jerry_value_t prop_name = jerry_create_string((const jerry_char_t*)"setInterval");
- jerry_value_t func_obj = jerry_get_property(global_obj, prop_name);
- jerry_release_value(prop_name);
+ jerry_value_t global_obj = jerry_current_realm ();
+ jerry_value_t prop_name = jerry_string_sz ("setInterval");
+ jerry_value_t func_obj = jerry_object_get (global_obj, prop_name);
+ jerry_value_free (prop_name);
- jerry_delete_property_by_index(func_obj, id);
- jerry_release_value(func_obj);
- jerry_release_value(global_obj);
+ jerry_object_delete_index (func_obj, id);
+ jerry_value_free (func_obj);
+ jerry_value_free (global_obj);
- return jerry_create_undefined();
+ return jerry_undefined ();
}
diff --git a/targets/mbedos5/jerryscript-mbed/jerryscript-mbed-drivers/source/setTimeout-js.cpp b/targets/mbedos5/jerryscript-mbed/jerryscript-mbed-drivers/source/setTimeout-js.cpp
index a9bf1096..a7eb32bb 100644
--- a/targets/mbedos5/jerryscript-mbed/jerryscript-mbed-drivers/source/setTimeout-js.cpp
+++ b/targets/mbedos5/jerryscript-mbed/jerryscript-mbed-drivers/source/setTimeout-js.cpp
@@ -13,6 +13,7 @@
* limitations under the License.
*/
#include "jerryscript-mbed-drivers/setTimeout-js.h"
+
#include "jerryscript-mbed-event-loop/EventLoop.h"
/**
@@ -23,26 +24,33 @@
* @param function Function to call
* @param wait_time Time before function is called, in ms.
*/
-DECLARE_GLOBAL_FUNCTION(setTimeout) {
- CHECK_ARGUMENT_COUNT(global, setTimeout, (args_count == 2));
- CHECK_ARGUMENT_TYPE_ALWAYS(global, setTimeout, 0, function);
- CHECK_ARGUMENT_TYPE_ALWAYS(global, setTimeout, 1, number);
+DECLARE_GLOBAL_FUNCTION (setTimeout)
+{
+ CHECK_ARGUMENT_COUNT (global, setTimeout, (args_count == 2));
+ CHECK_ARGUMENT_TYPE_ALWAYS (global, setTimeout, 0, function);
+ CHECK_ARGUMENT_TYPE_ALWAYS (global, setTimeout, 1, number);
- int interval = int(jerry_get_number_value(args[1]));
+ int interval = int (jerry_value_as_number (args[1]));
- int id = mbed::js::EventLoop::getInstance().getQueue().call_in(interval, jerry_call_function, args[0], jerry_create_null(), (jerry_value_t*)NULL, 0);
+ int id = mbed::js::EventLoop::getInstance ().getQueue ().call_in (interval,
+ jerry_call,
+ args[0],
+ jerry_null (),
+ (jerry_value_t*) NULL,
+ 0);
- jerry_value_t result = jerry_set_property_by_index(call_info_p->function, id, args[0]);
+ jerry_value_t result = jerry_object_set_index (call_info_p->function, id, args[0]);
- if (jerry_value_is_error(result)) {
- jerry_release_value(result);
- mbed::js::EventLoop::getInstance().getQueue().cancel(id);
+ if (jerry_value_is_exception (result))
+ {
+ jerry_value_free (result);
+ mbed::js::EventLoop::getInstance ().getQueue ().cancel (id);
- return jerry_create_error(JERRY_ERROR_TYPE, (const jerry_char_t *) "Failed to run setTimeout");
- }
+ return jerry_throw_sz (JERRY_ERROR_TYPE, "Failed to run setTimeout");
+ }
- jerry_release_value(result);
- return jerry_create_number(id);
+ jerry_value_free (result);
+ return jerry_number (id);
}
/**
@@ -52,22 +60,23 @@ DECLARE_GLOBAL_FUNCTION(setTimeout) {
*
* @param id ID of the timeout event, returned by setTimeout.
*/
-DECLARE_GLOBAL_FUNCTION(clearTimeout) {
- CHECK_ARGUMENT_COUNT(global, clearTimeout, (args_count == 1));
- CHECK_ARGUMENT_TYPE_ALWAYS(global, clearTimeout, 0, number);
+DECLARE_GLOBAL_FUNCTION (clearTimeout)
+{
+ CHECK_ARGUMENT_COUNT (global, clearTimeout, (args_count == 1));
+ CHECK_ARGUMENT_TYPE_ALWAYS (global, clearTimeout, 0, number);
- int id = int(jerry_get_number_value(args[0]));
+ int id = int (jerry_value_as_number (args[0]));
- mbed::js::EventLoop::getInstance().getQueue().cancel(id);
+ mbed::js::EventLoop::getInstance ().getQueue ().cancel (id);
- jerry_value_t global_obj = jerry_get_global_object();
- jerry_value_t prop_name = jerry_create_string((const jerry_char_t*)"setTimeout");
- jerry_value_t func_obj = jerry_get_property(global_obj, prop_name);
- jerry_release_value(prop_name);
+ jerry_value_t global_obj = jerry_current_realm ();
+ jerry_value_t prop_name = jerry_string_sz ("setTimeout");
+ jerry_value_t func_obj = jerry_object_get (global_obj, prop_name);
+ jerry_value_free (prop_name);
- jerry_delete_property_by_index(func_obj, id);
- jerry_release_value(func_obj);
- jerry_release_value(global_obj);
+ jerry_object_delete_index (func_obj, id);
+ jerry_value_free (func_obj);
+ jerry_value_free (global_obj);
- return jerry_create_undefined();
+ return jerry_undefined ();
}
diff --git a/targets/mbedos5/jerryscript-mbed/jerryscript-mbed-event-loop/EventLoop.h b/targets/mbedos5/jerryscript-mbed/jerryscript-mbed-event-loop/EventLoop.h
index 99d85522..db7c985e 100644
--- a/targets/mbedos5/jerryscript-mbed/jerryscript-mbed-event-loop/EventLoop.h
+++ b/targets/mbedos5/jerryscript-mbed/jerryscript-mbed-event-loop/EventLoop.h
@@ -73,7 +73,7 @@ class EventLoop {
}
void callback(jerry_value_t f) {
- queue.call(jerry_call_function, f, jerry_create_null(), (const jerry_value_t*)NULL, 0);
+ queue.call(jerry_call, f, jerry_null(), (const jerry_value_t*)NULL, 0);
}
void nativeCallback(Callback<void()> cb) {
diff --git a/targets/mbedos5/jerryscript-mbed/jerryscript-mbed-launcher/source/launcher.cpp b/targets/mbedos5/jerryscript-mbed/jerryscript-mbed-launcher/source/launcher.cpp
index 6e3b1c87..e8623795 100644
--- a/targets/mbedos5/jerryscript-mbed/jerryscript-mbed-launcher/source/launcher.cpp
+++ b/targets/mbedos5/jerryscript-mbed/jerryscript-mbed-launcher/source/launcher.cpp
@@ -44,24 +44,24 @@ static int load_javascript() {
jerry_value_t parsed_code = jerry_parse(code, length, NULL);
- if (jerry_value_is_error(parsed_code)) {
+ if (jerry_value_is_exception(parsed_code)) {
LOG_PRINT_ALWAYS("jerry_parse failed [%s]\r\n", js_codes[src].name);
- jerry_release_value(parsed_code);
+ jerry_value_free(parsed_code);
jsmbed_js_exit();
return -1;
}
jerry_value_t returned_value = jerry_run(parsed_code);
- jerry_release_value(parsed_code);
+ jerry_value_free(parsed_code);
- if (jerry_value_is_error(returned_value)) {
+ if (jerry_value_is_exception(returned_value)) {
LOG_PRINT_ALWAYS("jerry_run failed [%s]\r\n", js_codes[src].name);
- jerry_release_value(returned_value);
+ jerry_value_free(returned_value);
jsmbed_js_exit();
return -1;
}
- jerry_release_value(returned_value);
+ jerry_value_free(returned_value);
}
return 0;
diff --git a/targets/mbedos5/jerryscript-mbed/jerryscript-mbed-launcher/source/setup.cpp b/targets/mbedos5/jerryscript-mbed/jerryscript-mbed-launcher/source/setup.cpp
index fb6bb27b..fd19b713 100644
--- a/targets/mbedos5/jerryscript-mbed/jerryscript-mbed-launcher/source/setup.cpp
+++ b/targets/mbedos5/jerryscript-mbed/jerryscript-mbed-launcher/source/setup.cpp
@@ -12,38 +12,43 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-#include <stdlib.h>
+#include "jerryscript-mbed-launcher/setup.h"
+
#include <stdio.h>
+#include <stdlib.h>
-#include "jerryscript-mbed-launcher/setup.h"
#include "jerryscript-mbed-util/logging.h"
extern uint32_t jsmbed_js_magic_string_count;
extern uint32_t jsmbed_js_magic_string_values[];
-extern const jerry_char_t *jsmbed_js_magic_strings[];
+extern const char *jsmbed_js_magic_strings[];
extern const jerry_length_t jsmbed_js_magic_string_lengths[];
-void jsmbed_js_load_magic_strings() {
- if (jsmbed_js_magic_string_count == 0) {
- return;
- }
+void
+jsmbed_js_load_magic_strings ()
+{
+ if (jsmbed_js_magic_string_count == 0)
+ {
+ return;
+ }
- jerry_register_magic_strings(jsmbed_js_magic_strings,
- jsmbed_js_magic_string_count,
- jsmbed_js_magic_string_lengths);
+ jerry_register_magic_strings ((const jerry_char_t **) jsmbed_js_magic_strings,
+ jsmbed_js_magic_string_count,
+ jsmbed_js_magic_string_lengths);
- jerry_value_t global = jerry_get_global_object();
+ jerry_value_t global = jerry_current_realm ();
- for (unsigned int idx = 0; idx < jsmbed_js_magic_string_count; idx++) {
- jerry_value_t constant_value = jerry_create_number(jsmbed_js_magic_string_values[idx]);
- jerry_value_t magic_string = jerry_create_string(jsmbed_js_magic_strings[idx]);
+ for (unsigned int idx = 0; idx < jsmbed_js_magic_string_count; idx++)
+ {
+ jerry_value_t constant_value = jerry_number (jsmbed_js_magic_string_values[idx]);
+ jerry_value_t magic_string = jerry_string_sz (jsmbed_js_magic_strings[idx]);
- jerry_release_value(jerry_set_property(global, magic_string, constant_value));
+ jerry_value_free (jerry_object_set (global, magic_string, constant_value));
- jerry_release_value(constant_value);
- jerry_release_value(magic_string);
- }
+ jerry_value_free (constant_value);
+ jerry_value_free (magic_string);
+ }
- jerry_release_value(global);
+ jerry_value_free (global);
}
diff --git a/targets/mbedos5/jerryscript-mbed/jerryscript-mbed-library-registry/source/wrap_tools.cpp b/targets/mbedos5/jerryscript-mbed/jerryscript-mbed-library-registry/source/wrap_tools.cpp
index 21607657..15c1eb6b 100644
--- a/targets/mbedos5/jerryscript-mbed/jerryscript-mbed-library-registry/source/wrap_tools.cpp
+++ b/targets/mbedos5/jerryscript-mbed/jerryscript-mbed-library-registry/source/wrap_tools.cpp
@@ -12,66 +12,73 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-#include <stdlib.h>
-#include <stdio.h>
-
#include "jerryscript-mbed-library-registry/wrap_tools.h"
-bool jsmbed_wrap_register_global_function(const char* name, jerry_external_handler_t handler) {
- jerry_value_t global_object_val = jerry_get_global_object();
- jerry_value_t reg_function = jerry_create_external_function(handler);
-
- bool is_ok = true;
+#include <stdio.h>
+#include <stdlib.h>
- if (!(jerry_value_is_function(reg_function)
- && jerry_value_is_constructor(reg_function))) {
- is_ok = false;
- LOG_PRINT_ALWAYS("Error: jerry_create_external_function failed!\r\n");
- jerry_release_value(global_object_val);
- jerry_release_value(reg_function);
- return is_ok;
- }
+bool
+jsmbed_wrap_register_global_function (const char* name, jerry_external_handler_t handler)
+{
+ jerry_value_t global_object_val = jerry_current_realm ();
+ jerry_value_t reg_function = jerry_function_external (handler);
- if (jerry_value_is_error(reg_function)) {
- is_ok = false;
- LOG_PRINT_ALWAYS("Error: jerry_create_external_function has error flag! \r\n");
- jerry_release_value(global_object_val);
- jerry_release_value(reg_function);
- return is_ok;
- }
+ bool is_ok = true;
- jerry_value_t jerry_name = jerry_create_string((jerry_char_t *) name);
+ if (!(jerry_value_is_function (reg_function) && jerry_value_is_constructor (reg_function)))
+ {
+ is_ok = false;
+ LOG_PRINT_ALWAYS ("Error: jerry_function_external failed!\r\n");
+ jerry_value_free (global_object_val);
+ jerry_value_free (reg_function);
+ return is_ok;
+ }
+
+ if (jerry_value_is_exception (reg_function))
+ {
+ is_ok = false;
+ LOG_PRINT_ALWAYS ("Error: jerry_function_external has error flag! \r\n");
+ jerry_value_free (global_object_val);
+ jerry_value_free (reg_function);
+ return is_ok;
+ }
- jerry_value_t set_result = jerry_set_property(global_object_val, jerry_name, reg_function);
+ jerry_value_t jerry_name = jerry_string_sz (name);
+ jerry_value_t set_result = jerry_object_set (global_object_val, jerry_name, reg_function);
- if (jerry_value_is_error(set_result)) {
- is_ok = false;
- LOG_PRINT_ALWAYS("Error: jerry_create_external_function failed: [%s]\r\n", name);
- }
+ if (jerry_value_is_exception (set_result))
+ {
+ is_ok = false;
+ LOG_PRINT_ALWAYS ("Error: jerry_function_external failed: [%s]\r\n", name);
+ }
- jerry_release_value(jerry_name);
- jerry_release_value(global_object_val);
- jerry_release_value(reg_function);
- jerry_release_value(set_result);
+ jerry_value_free (jerry_name);
+ jerry_value_free (global_object_val);
+ jerry_value_free (reg_function);
+ jerry_value_free (set_result);
- return is_ok;
+ return is_ok;
}
-bool jsmbed_wrap_register_class_constructor(const char* name, jerry_external_handler_t handler) {
- // Register class constructor as a global function
- return jsmbed_wrap_register_global_function(name, handler);
+bool
+jsmbed_wrap_register_class_constructor (const char* name, jerry_external_handler_t handler)
+{
+ // Register class constructor as a global function
+ return jsmbed_wrap_register_global_function (name, handler);
}
-bool jsmbed_wrap_register_class_function(jerry_value_t this_obj, const char* name, jerry_external_handler_t handler) {
- jerry_value_t property_name = jerry_create_string(reinterpret_cast<const jerry_char_t *>(name));
- jerry_value_t handler_obj = jerry_create_external_function(handler);
+bool
+jsmbed_wrap_register_class_function (jerry_value_t this_obj, const char* name, jerry_external_handler_t handler)
+{
+ jerry_value_t property_name = jerry_string_sz (name);
+ jerry_value_t handler_obj = jerry_function_external (handler);
- jerry_release_value(jerry_set_property(this_obj, property_name, handler_obj));
+ jerry_value_free (jerry_object_set (this_obj, property_name, handler_obj));
- jerry_release_value(handler_obj);
- jerry_release_value(property_name);
+ jerry_value_free (handler_obj);
+ jerry_value_free (property_name);
- // TODO: check for errors, and return false in the case of errors
- return true;
+ // TODO: check for errors, and return false in the case of errors
+ return true;
}
diff --git a/targets/mbedos5/jerryscript-mbed/jerryscript-mbed-util/wrappers.h b/targets/mbedos5/jerryscript-mbed/jerryscript-mbed-util/wrappers.h
index 892ad4a2..8043a66b 100644
--- a/targets/mbedos5/jerryscript-mbed/jerryscript-mbed-util/wrappers.h
+++ b/targets/mbedos5/jerryscript-mbed/jerryscript-mbed-util/wrappers.h
@@ -19,75 +19,73 @@
* Used in header/source files for wrappers, to declare the signature of the
* registration function.
*/
-#define DECLARE_JS_WRAPPER_REGISTRATION(NAME) \
- void jsmbed_wrap_registry_entry__ ## NAME (void)
+#define DECLARE_JS_WRAPPER_REGISTRATION(NAME) void jsmbed_wrap_registry_entry__##NAME (void)
//
// 2. Wrapper function declaration/use macros
//
// Global functions
-#define DECLARE_GLOBAL_FUNCTION(NAME) \
-jerry_value_t \
-NAME_FOR_GLOBAL_FUNCTION(NAME) (const jerry_call_info_t *call_info_p, \
- const jerry_value_t args[], \
- const jerry_length_t args_count)
+#define DECLARE_GLOBAL_FUNCTION(NAME) \
+ jerry_value_t NAME_FOR_GLOBAL_FUNCTION ( \
+ NAME) (const jerry_call_info_t* call_info_p, const jerry_value_t args[], const jerry_length_t args_count)
-#define REGISTER_GLOBAL_FUNCTION(NAME) \
- jsmbed_wrap_register_global_function ( # NAME, NAME_FOR_GLOBAL_FUNCTION(NAME) )
+#define REGISTER_GLOBAL_FUNCTION(NAME) jsmbed_wrap_register_global_function (#NAME, NAME_FOR_GLOBAL_FUNCTION (NAME))
-#define REGISTER_GLOBAL_FUNCTION_WITH_HANDLER(NAME, HANDLER) \
- jsmbed_wrap_register_global_function ( # NAME, HANDLER )
+#define REGISTER_GLOBAL_FUNCTION_WITH_HANDLER(NAME, HANDLER) jsmbed_wrap_register_global_function (#NAME, HANDLER)
// Class constructors
-#define DECLARE_CLASS_CONSTRUCTOR(CLASS) \
-jerry_value_t \
-NAME_FOR_CLASS_CONSTRUCTOR(CLASS) (const jerry_call_info_t *call_info_p, \
- const jerry_value_t args[], \
- const jerry_length_t args_count)
+#define DECLARE_CLASS_CONSTRUCTOR(CLASS) \
+ jerry_value_t NAME_FOR_CLASS_CONSTRUCTOR ( \
+ CLASS) (const jerry_call_info_t* call_info_p, const jerry_value_t args[], const jerry_length_t args_count)
#define REGISTER_CLASS_CONSTRUCTOR(CLASS) \
- jsmbed_wrap_register_class_constructor ( # CLASS, NAME_FOR_CLASS_CONSTRUCTOR(CLASS) )
+ jsmbed_wrap_register_class_constructor (#CLASS, NAME_FOR_CLASS_CONSTRUCTOR (CLASS))
// Class functions
-#define DECLARE_CLASS_FUNCTION(CLASS, NAME) \
-jerry_value_t \
-NAME_FOR_CLASS_FUNCTION(CLASS, NAME) (const jerry_call_info_t *call_info_p, \
- const jerry_value_t args[], \
- const jerry_length_t args_count)
+#define DECLARE_CLASS_FUNCTION(CLASS, NAME) \
+ jerry_value_t NAME_FOR_CLASS_FUNCTION (CLASS, NAME) (const jerry_call_info_t* call_info_p, \
+ const jerry_value_t args[], \
+ const jerry_length_t args_count)
#define ATTACH_CLASS_FUNCTION(OBJECT, CLASS, NAME) \
- jsmbed_wrap_register_class_function (OBJECT, # NAME, NAME_FOR_CLASS_FUNCTION(CLASS, NAME) )
+ jsmbed_wrap_register_class_function (OBJECT, #NAME, NAME_FOR_CLASS_FUNCTION (CLASS, NAME))
//
// 3. Argument checking macros
//
-#define CHECK_ARGUMENT_COUNT(CLASS, NAME, EXPR) \
- if (!(EXPR)) { \
- const char* error_msg = "ERROR: wrong argument count for " # CLASS "." # NAME ", expected " # EXPR "."; \
- return jerry_create_error(JERRY_ERROR_TYPE, reinterpret_cast<const jerry_char_t*>(error_msg)); \
- }
+#define CHECK_ARGUMENT_COUNT(CLASS, NAME, EXPR) \
+ if (!(EXPR)) \
+ { \
+ const char* error_msg = "ERROR: wrong argument count for " #CLASS "." #NAME ", expected " #EXPR "."; \
+ return jerry_throw_sz (JERRY_ERROR_TYPE, error_msg); \
+ }
-#define CHECK_ARGUMENT_TYPE_ALWAYS(CLASS, NAME, INDEX, TYPE) \
- if (!jerry_value_is_ ## TYPE (args[INDEX])) { \
- const char* error_msg = "ERROR: wrong argument type for " # CLASS "." # NAME ", expected argument " # INDEX " to be a " # TYPE ".\n"; \
- return jerry_create_error(JERRY_ERROR_TYPE, reinterpret_cast<const jerry_char_t*>(error_msg)); \
- }
+#define CHECK_ARGUMENT_TYPE_ALWAYS(CLASS, NAME, INDEX, TYPE) \
+ if (!jerry_value_is_##TYPE (args[INDEX])) \
+ { \
+ const char* error_msg = \
+ "ERROR: wrong argument type for " #CLASS "." #NAME ", expected argument " #INDEX " to be a " #TYPE ".\n"; \
+ return jerry_throw_sz (JERRY_ERROR_TYPE, error_msg); \
+ }
-#define CHECK_ARGUMENT_TYPE_ON_CONDITION(CLASS, NAME, INDEX, TYPE, EXPR) \
- if ((EXPR)) { \
- if (!jerry_value_is_ ## TYPE (args[INDEX])) { \
- const char* error_msg = "ERROR: wrong argument type for " # CLASS "." # NAME ", expected argument " # INDEX " to be a " # TYPE ".\n"; \
- return jerry_create_error(JERRY_ERROR_TYPE, reinterpret_cast<const jerry_char_t*>(error_msg)); \
- } \
- }
+#define CHECK_ARGUMENT_TYPE_ON_CONDITION(CLASS, NAME, INDEX, TYPE, EXPR) \
+ if ((EXPR)) \
+ { \
+ if (!jerry_value_is_##TYPE (args[INDEX])) \
+ { \
+ const char* error_msg = \
+ "ERROR: wrong argument type for " #CLASS "." #NAME ", expected argument " #INDEX " to be a " #TYPE ".\n"; \
+ return jerry_throw_sz (JERRY_ERROR_TYPE, error_msg); \
+ } \
+ }
-#define NAME_FOR_GLOBAL_FUNCTION(NAME) __gen_jsmbed_global_func_ ## NAME
-#define NAME_FOR_CLASS_CONSTRUCTOR(CLASS) __gen_jsmbed_class_constructor_ ## CLASS
-#define NAME_FOR_CLASS_FUNCTION(CLASS, NAME) __gen_jsmbed_func_c_ ## CLASS ## _f_ ## NAME
+#define NAME_FOR_GLOBAL_FUNCTION(NAME) __gen_jsmbed_global_func_##NAME
+#define NAME_FOR_CLASS_CONSTRUCTOR(CLASS) __gen_jsmbed_class_constructor_##CLASS
+#define NAME_FOR_CLASS_FUNCTION(CLASS, NAME) __gen_jsmbed_func_c_##CLASS##_f_##NAME
-#define NAME_FOR_CLASS_NATIVE_CONSTRUCTOR(CLASS, TYPELIST) __gen_native_jsmbed_ ## CLASS ## __Special_create_ ## TYPELIST
-#define NAME_FOR_CLASS_NATIVE_DESTRUCTOR(CLASS) __gen_native_jsmbed_ ## CLASS ## __Special_destroy
-#define NAME_FOR_CLASS_NATIVE_FUNCTION(CLASS, NAME) __gen_native_jsmbed_ ## CLASS ## _ ## NAME
+#define NAME_FOR_CLASS_NATIVE_CONSTRUCTOR(CLASS, TYPELIST) __gen_native_jsmbed_##CLASS##__Special_create_##TYPELIST
+#define NAME_FOR_CLASS_NATIVE_DESTRUCTOR(CLASS) __gen_native_jsmbed_##CLASS##__Special_destroy
+#define NAME_FOR_CLASS_NATIVE_FUNCTION(CLASS, NAME) __gen_native_jsmbed_##CLASS##_##NAME
-#endif // _JERRYSCRIPT_MBED_UTIL_WRAPPERS_H
+#endif // _JERRYSCRIPT_MBED_UTIL_WRAPPERS_H
diff --git a/targets/nuttx-stm32f4/jerry_main.c b/targets/nuttx-stm32f4/jerry_main.c
index 3840b2cb..e4cb8392 100644
--- a/targets/nuttx-stm32f4/jerry_main.c
+++ b/targets/nuttx-stm32f4/jerry_main.c
@@ -15,13 +15,14 @@
#include <assert.h>
#include <stdio.h>
-#include <string.h>
#include <stdlib.h>
+#include <string.h>
+#include "jerryscript-port.h"
#include "jerryscript.h"
+
#include "jerryscript-ext/debugger.h"
#include "jerryscript-ext/handler.h"
-#include "jerryscript-port.h"
#include "setjmp.h"
/**
@@ -111,7 +112,7 @@ read_file (const char *file_name, /**< source code */
if (!bytes_read || bytes_read != script_len)
{
jerry_port_log (JERRY_LOG_LEVEL_ERROR, "Error: failed to read file: %s\n", file_name);
- free ((void*) buffer);
+ free ((void *) buffer);
fclose (file);
return NULL;
@@ -132,7 +133,7 @@ static uint32_t
str_to_uint (const char *num_str_p, /**< string to convert */
char **out_p) /**< [out] end of the number */
{
- assert (jerry_is_feature_enabled (JERRY_FEATURE_ERROR_MESSAGES));
+ assert (jerry_feature_enabled (JERRY_FEATURE_ERROR_MESSAGES));
uint32_t result = 0;
@@ -157,124 +158,111 @@ str_to_uint (const char *num_str_p, /**< string to convert */
static void
print_unhandled_exception (jerry_value_t error_value) /**< error value */
{
- assert (jerry_value_is_error (error_value));
+ assert (jerry_value_is_exception (error_value));
- error_value = jerry_get_value_from_error (error_value, false);
+ error_value = jerry_exception_value (error_value, false);
jerry_value_t err_str_val = jerry_value_to_string (error_value);
- jerry_size_t err_str_size = jerry_get_utf8_string_size (err_str_val);
jerry_char_t err_str_buf[256];
- jerry_release_value (error_value);
+ jerry_value_free (error_value);
- if (err_str_size >= 256)
- {
- const char msg[] = "[Error message too long]";
- err_str_size = sizeof (msg) / sizeof (char) - 1;
- memcpy (err_str_buf, msg, err_str_size);
- }
- else
- {
- jerry_size_t sz = jerry_string_to_utf8_char_buffer (err_str_val, err_str_buf, err_str_size);
- assert (sz == err_str_size);
- err_str_buf[err_str_size] = 0;
+ jerry_size_t sz = jerry_string_to_buffer (err_str_val, JERRY_ENCODING_UTF8, err_str_buf, sizeof (err_str_buf) - 1);
+ err_str_buf[sz] = '\0';
- if (jerry_is_feature_enabled (JERRY_FEATURE_ERROR_MESSAGES)
- && jerry_get_error_type (error_value) == JERRY_ERROR_SYNTAX)
+ if (jerry_feature_enabled (JERRY_FEATURE_ERROR_MESSAGES) && jerry_error_type (error_value) == JERRY_ERROR_SYNTAX)
+ {
+ jerry_char_t *string_end_p = err_str_buf + sz;
+ uint32_t err_line = 0;
+ uint32_t err_col = 0;
+ char *path_str_p = NULL;
+ char *path_str_end_p = NULL;
+
+ /* 1. parse column and line information */
+ for (jerry_char_t *current_p = err_str_buf; current_p < string_end_p; current_p++)
{
- jerry_char_t *string_end_p = err_str_buf + sz;
- uint32_t err_line = 0;
- uint32_t err_col = 0;
- char *path_str_p = NULL;
- char *path_str_end_p = NULL;
-
- /* 1. parse column and line information */
- for (jerry_char_t *current_p = err_str_buf; current_p < string_end_p; current_p++)
+ if (*current_p == '[')
{
- if (*current_p == '[')
+ current_p++;
+
+ if (*current_p == '<')
{
- current_p++;
+ break;
+ }
- if (*current_p == '<')
- {
- break;
- }
+ path_str_p = (char *) current_p;
+ while (current_p < string_end_p && *current_p != ':')
+ {
+ current_p++;
+ }
- path_str_p = (char *) current_p;
- while (current_p < string_end_p && *current_p != ':')
- {
- current_p++;
- }
+ path_str_end_p = (char *) current_p++;
- path_str_end_p = (char *) current_p++;
+ err_line = str_to_uint ((char *) current_p, (char **) &current_p);
- err_line = str_to_uint ((char *) current_p, (char **) &current_p);
+ current_p++;
- current_p++;
+ err_col = str_to_uint ((char *) current_p, NULL);
+ break;
+ }
+ } /* for */
- err_col = str_to_uint ((char *) current_p, NULL);
- break;
- }
- } /* for */
+ if (err_line != 0 && err_col != 0)
+ {
+ uint32_t curr_line = 1;
- if (err_line != 0 && err_col != 0)
- {
- uint32_t curr_line = 1;
+ bool is_printing_context = false;
+ uint32_t pos = 0;
- bool is_printing_context = false;
- uint32_t pos = 0;
+ /* Temporarily modify the error message, so we can use the path. */
+ *path_str_end_p = '\0';
- /* Temporarily modify the error message, so we can use the path. */
- *path_str_end_p = '\0';
+ size_t source_size;
+ const jerry_char_t *source_p = read_file (path_str_p, &source_size);
- size_t source_size;
- const jerry_char_t *source_p = read_file (path_str_p, &source_size);
+ /* Revert the error message. */
+ *path_str_end_p = ':';
- /* Revert the error message. */
- *path_str_end_p = ':';
+ /* 2. seek and print */
+ while (source_p[pos] != '\0')
+ {
+ if (source_p[pos] == '\n')
+ {
+ curr_line++;
+ }
- /* 2. seek and print */
- while (source_p[pos] != '\0')
+ if (err_line < SYNTAX_ERROR_CONTEXT_SIZE
+ || (err_line >= curr_line && (err_line - curr_line) <= SYNTAX_ERROR_CONTEXT_SIZE))
{
- if (source_p[pos] == '\n')
- {
- curr_line++;
- }
-
- if (err_line < SYNTAX_ERROR_CONTEXT_SIZE
- || (err_line >= curr_line
- && (err_line - curr_line) <= SYNTAX_ERROR_CONTEXT_SIZE))
- {
- /* context must be printed */
- is_printing_context = true;
- }
-
- if (curr_line > err_line)
- {
- break;
- }
-
- if (is_printing_context)
- {
- jerry_port_log (JERRY_LOG_LEVEL_ERROR, "%c", source_p[pos]);
- }
-
- pos++;
+ /* context must be printed */
+ is_printing_context = true;
}
- jerry_port_log (JERRY_LOG_LEVEL_ERROR, "\n");
+ if (curr_line > err_line)
+ {
+ break;
+ }
- while (--err_col)
+ if (is_printing_context)
{
- jerry_port_log (JERRY_LOG_LEVEL_ERROR, "~");
+ jerry_port_log (JERRY_LOG_LEVEL_ERROR, "%c", source_p[pos]);
}
- jerry_port_log (JERRY_LOG_LEVEL_ERROR, "^\n");
+ pos++;
+ }
+
+ jerry_port_log (JERRY_LOG_LEVEL_ERROR, "\n");
+
+ while (--err_col)
+ {
+ jerry_port_log (JERRY_LOG_LEVEL_ERROR, "~");
}
+
+ jerry_port_log (JERRY_LOG_LEVEL_ERROR, "^\n");
}
}
jerry_port_log (JERRY_LOG_LEVEL_ERROR, "Script Error: %s\n", err_str_buf);
- jerry_release_value (err_str_val);
+ jerry_value_free (err_str_val);
} /* print_unhandled_exception */
/**
@@ -284,26 +272,27 @@ static void
register_js_function (const char *name_p, /**< name of the function */
jerry_external_handler_t handler_p) /**< function callback */
{
- jerry_value_t result_val = jerryx_handler_register_global ((const jerry_char_t *) name_p, handler_p);
+ jerry_value_t result_val = jerryx_handler_register_global (name_p, handler_p);
- if (jerry_value_is_error (result_val))
+ if (jerry_value_is_exception (result_val))
{
jerry_port_log (JERRY_LOG_LEVEL_WARNING, "Warning: failed to register '%s' method.", name_p);
}
- jerry_release_value (result_val);
+ jerry_value_free (result_val);
} /* register_js_function */
-
/**
* Main program.
*
* @return 0 if success, error code otherwise
*/
#ifdef CONFIG_BUILD_KERNEL
-int main (int argc, FAR char *argv[])
+int
+main (int argc, FAR char *argv[])
#else /* !defined(CONFIG_BUILD_KERNEL) */
-int jerry_main (int argc, char *argv[])
+int
+jerry_main (int argc, char *argv[])
#endif /* defined(CONFIG_BUILD_KERNEL) */
{
if (argc > JERRY_MAX_COMMAND_LINE_ARGS)
@@ -335,11 +324,6 @@ int jerry_main (int argc, char *argv[])
flags |= JERRY_INIT_MEM_STATS;
set_log_level (JERRY_LOG_LEVEL_DEBUG);
}
- else if (!strcmp ("--mem-stats-separate", argv[i]))
- {
- flags |= JERRY_INIT_MEM_STATS_SEPARATE;
- set_log_level (JERRY_LOG_LEVEL_DEBUG);
- }
else if (!strcmp ("--show-opcodes", argv[i]))
{
flags |= JERRY_INIT_SHOW_OPCODES | JERRY_INIT_SHOW_REGEXP_OPCODES;
@@ -347,7 +331,7 @@ int jerry_main (int argc, char *argv[])
}
else if (!strcmp ("--log-level", argv[i]))
{
- if (++i < argc && strlen (argv[i]) == 1 && argv[i][0] >='0' && argv[i][0] <= '3')
+ if (++i < argc && strlen (argv[i]) == 1 && argv[i][0] >= '0' && argv[i][0] <= '3')
{
set_log_level (argv[i][0] - '0');
}
@@ -383,15 +367,14 @@ int jerry_main (int argc, char *argv[])
if (start_debug_server)
{
- jerryx_debugger_after_connect (jerryx_debugger_tcp_create (debug_port)
- && jerryx_debugger_ws_create ());
+ jerryx_debugger_after_connect (jerryx_debugger_tcp_create (debug_port) && jerryx_debugger_ws_create ());
}
register_js_function ("assert", jerryx_handler_assert);
register_js_function ("gc", jerryx_handler_gc);
register_js_function ("print", jerryx_handler_print);
- jerry_value_t ret_value = jerry_create_undefined ();
+ jerry_value_t ret_value = jerry_undefined ();
if (files_counter == 0)
{
@@ -400,7 +383,7 @@ int jerry_main (int argc, char *argv[])
ret_value = jerry_parse (script, sizeof (script) - 1, NULL);
- if (!jerry_value_is_error (ret_value))
+ if (!jerry_value_is_exception (ret_value))
{
ret_value = jerry_run (ret_value);
}
@@ -419,50 +402,48 @@ int jerry_main (int argc, char *argv[])
}
jerry_parse_options_t parse_options;
- parse_options.options = JERRY_PARSE_HAS_RESOURCE;
- parse_options.resource_name = jerry_create_string ((const jerry_char_t *) file_names[i]);
+ parse_options.options = JERRY_PARSE_HAS_SOURCE_NAME;
+ parse_options.source_name = jerry_string_sz (file_names[i]);
- ret_value = jerry_parse (source_p,
- source_size,
- &parse_options);
- jerry_release_value (parse_options.resource_name);
- free ((void*) source_p);
+ ret_value = jerry_parse (source_p, source_size, &parse_options);
+ jerry_value_free (parse_options.source_name);
+ free ((void *) source_p);
- if (!jerry_value_is_error (ret_value))
+ if (!jerry_value_is_exception (ret_value))
{
jerry_value_t func_val = ret_value;
ret_value = jerry_run (func_val);
- jerry_release_value (func_val);
+ jerry_value_free (func_val);
}
- if (jerry_value_is_error (ret_value))
+ if (jerry_value_is_exception (ret_value))
{
print_unhandled_exception (ret_value);
break;
}
- jerry_release_value (ret_value);
- ret_value = jerry_create_undefined ();
+ jerry_value_free (ret_value);
+ ret_value = jerry_undefined ();
}
}
int ret_code = JERRY_STANDALONE_EXIT_CODE_OK;
- if (jerry_value_is_error (ret_value))
+ if (jerry_value_is_exception (ret_value))
{
ret_code = JERRY_STANDALONE_EXIT_CODE_FAIL;
}
- jerry_release_value (ret_value);
+ jerry_value_free (ret_value);
- ret_value = jerry_run_all_enqueued_jobs ();
+ ret_value = jerry_run_jobs ();
- if (jerry_value_is_error (ret_value))
+ if (jerry_value_is_exception (ret_value))
{
ret_code = JERRY_STANDALONE_EXIT_CODE_FAIL;
}
- jerry_release_value (ret_value);
+ jerry_value_free (ret_value);
jerry_cleanup ();
return ret_code;
diff --git a/targets/nuttx-stm32f4/jerry_module.c b/targets/nuttx-stm32f4/jerry_module.c
index 97f92dcf..39494d16 100644
--- a/targets/nuttx-stm32f4/jerry_module.c
+++ b/targets/nuttx-stm32f4/jerry_module.c
@@ -14,12 +14,12 @@
*/
#include <stdio.h>
-#include <string.h>
#include <stdlib.h>
+#include <string.h>
#include <unistd.h>
-#include "jerryscript.h"
#include "jerryscript-port.h"
+#include "jerryscript.h"
/**
* Computes the end of the directory part of a path.
@@ -102,8 +102,7 @@ typedef struct jerry_port_module_t
/**
* Native info descriptor for modules.
*/
-static const jerry_object_native_info_t jerry_port_module_native_info =
-{
+static const jerry_object_native_info_t jerry_port_module_native_info = {
.free_cb = NULL,
};
@@ -136,8 +135,8 @@ jerry_port_module_free (jerry_port_module_manager_t *manager_p, /**< module mana
if (release_all || module_p->realm == realm)
{
free (module_p->path_p);
- jerry_release_value (module_p->realm);
- jerry_release_value (module_p->module);
+ jerry_value_free (module_p->realm);
+ jerry_value_free (module_p->module);
free (module_p);
@@ -174,20 +173,18 @@ jerry_port_module_manager_init (void *user_data_p)
static void
jerry_port_module_manager_deinit (void *user_data_p) /**< context pointer to deinitialize */
{
- jerry_value_t undef = jerry_create_undefined ();
+ jerry_value_t undef = jerry_undefined ();
jerry_port_module_free ((jerry_port_module_manager_t *) user_data_p, undef);
- jerry_release_value (undef);
+ jerry_value_free (undef);
} /* jerry_port_module_manager_deinit */
/**
* Declare the context data manager for modules.
*/
-static const jerry_context_data_manager_t jerry_port_module_manager =
-{
- .init_cb = jerry_port_module_manager_init,
- .deinit_cb = jerry_port_module_manager_deinit,
- .bytes_needed = sizeof (jerry_port_module_manager_t)
-};
+static const jerry_context_data_manager_t jerry_port_module_manager = { .init_cb = jerry_port_module_manager_init,
+ .deinit_cb = jerry_port_module_manager_deinit,
+ .bytes_needed =
+ sizeof (jerry_port_module_manager_t) };
/**
* Default module resolver.
@@ -201,44 +198,43 @@ jerry_port_module_resolve (const jerry_value_t specifier, /**< module specifier
{
(void) user_p;
- jerry_port_module_t *module_p;
const jerry_char_t *base_path_p = NULL;
size_t base_path_length = 0;
+ jerry_port_module_t *module_p = jerry_object_get_native_ptr (referrer, &jerry_port_module_native_info);
- if (jerry_get_object_native_pointer (referrer, (void **) &module_p, &jerry_port_module_native_info))
+ if (module_p != NULL)
{
base_path_p = module_p->path_p;
base_path_length = module_p->base_path_length;
}
- jerry_size_t in_path_length = jerry_get_utf8_string_size (specifier);
+ jerry_size_t in_path_length = jerry_string_size (specifier, JERRY_ENCODING_UTF8);
jerry_char_t *in_path_p = (jerry_char_t *) malloc (in_path_length + 1);
- jerry_string_to_utf8_char_buffer (specifier, in_path_p, in_path_length);
+ jerry_string_to_buffer (specifier, JERRY_ENCODING_UTF8, in_path_p, in_path_length);
in_path_p[in_path_length] = '\0';
jerry_char_t *path_p = jerry_port_normalize_path (in_path_p, in_path_length, base_path_p, base_path_length);
if (path_p == NULL)
{
- return jerry_create_error (JERRY_ERROR_COMMON, (const jerry_char_t *) "Out of memory");
+ return jerry_throw_sz (JERRY_ERROR_COMMON, "Out of memory");
}
- jerry_value_t realm = jerry_get_global_object ();
+ jerry_value_t realm = jerry_current_realm ();
jerry_port_module_manager_t *manager_p;
- manager_p = (jerry_port_module_manager_t *) jerry_get_context_data (&jerry_port_module_manager);
+ manager_p = (jerry_port_module_manager_t *) jerry_context_data (&jerry_port_module_manager);
module_p = manager_p->module_head_p;
while (module_p != NULL)
{
- if (module_p->realm == realm
- && strcmp ((const char *) module_p->path_p, (const char *) path_p) == 0)
+ if (module_p->realm == realm && strcmp ((const char *) module_p->path_p, (const char *) path_p) == 0)
{
free (path_p);
free (in_path_p);
- jerry_release_value (realm);
- return jerry_acquire_value (module_p->module);
+ jerry_value_free (realm);
+ return jerry_value_copy (module_p->module);
}
module_p = module_p->next_p;
@@ -251,28 +247,25 @@ jerry_port_module_resolve (const jerry_value_t specifier, /**< module specifier
{
free (path_p);
free (in_path_p);
- jerry_release_value (realm);
- /* TODO: This is incorrect, but makes test262 module tests pass
- * (they should throw SyntaxError, but not because the module cannot be found). */
- return jerry_create_error (JERRY_ERROR_SYNTAX, (const jerry_char_t *) "Module file not found");
+ jerry_value_free (realm);
+
+ return jerry_throw_sz (JERRY_ERROR_SYNTAX, "Module file not found");
}
jerry_parse_options_t parse_options;
- parse_options.options = JERRY_PARSE_MODULE | JERRY_PARSE_HAS_RESOURCE;
- parse_options.resource_name = jerry_create_string_sz ((const jerry_char_t *) in_path_p, in_path_length);
+ parse_options.options = JERRY_PARSE_MODULE | JERRY_PARSE_HAS_SOURCE_NAME;
+ parse_options.source_name = jerry_string (in_path_p, in_path_length, JERRY_ENCODING_UTF8);
- jerry_value_t ret_value = jerry_parse (source_p,
- source_size,
- &parse_options);
+ jerry_value_t ret_value = jerry_parse (source_p, source_size, &parse_options);
- jerry_release_value (parse_options.resource_name);
+ jerry_value_free (parse_options.source_name);
jerry_port_release_source (source_p);
free (in_path_p);
- if (jerry_value_is_error (ret_value))
+ if (jerry_value_is_exception (ret_value))
{
free (path_p);
- jerry_release_value (realm);
+ jerry_value_free (realm);
return ret_value;
}
@@ -282,9 +275,9 @@ jerry_port_module_resolve (const jerry_value_t specifier, /**< module specifier
module_p->path_p = path_p;
module_p->base_path_length = jerry_port_get_directory_end (module_p->path_p);
module_p->realm = realm;
- module_p->module = jerry_acquire_value (ret_value);
+ module_p->module = jerry_value_copy (ret_value);
- jerry_set_object_native_pointer (ret_value, module_p, &jerry_port_module_native_info);
+ jerry_object_set_native_ptr (ret_value, &jerry_port_module_native_info, module_p);
manager_p->module_head_p = module_p;
return ret_value;
@@ -297,6 +290,5 @@ void
jerry_port_module_release (const jerry_value_t realm) /**< if this argument is object, release only those modules,
* which realm value is equal to this argument. */
{
- jerry_port_module_free ((jerry_port_module_manager_t *) jerry_get_context_data (&jerry_port_module_manager),
- realm);
+ jerry_port_module_free ((jerry_port_module_manager_t *) jerry_context_data (&jerry_port_module_manager), realm);
} /* jerry_port_module_release */
diff --git a/targets/particle/source/main.cpp b/targets/particle/source/main.cpp
index 97d56781..b5cd6ceb 100644
--- a/targets/particle/source/main.cpp
+++ b/targets/particle/source/main.cpp
@@ -30,16 +30,16 @@ set_led (const jerry_value_t func_value, /**< function object */
if (args_cnt != 2)
{
Serial.println ("Wrong arguments count in 'test.setLed' function.");
- return jerry_create_boolean (false);
+ return jerry_boolean (false);
}
- int ledPin = jerry_get_number_value (args_p[0]);
+ int ledPin = jerry_value_as_number (args_p[0]);
bool value = jerry_value_is_true (args_p[1]);
pinMode (ledPin, OUTPUT);
digitalWrite (ledPin, value);
- return jerry_create_boolean (true);
+ return jerry_boolean (true);
} /* set_led */
/**
@@ -54,14 +54,14 @@ js_delay (const jerry_value_t func_value, /**< function object */
if (args_cnt != 1)
{
Serial.println ("Wrong arguments count in 'test.delay' function.");
- return jerry_create_boolean (false);
+ return jerry_boolean (false);
}
- int millisec = jerry_get_number_value (args_p[0]);
+ int millisec = jerry_value_as_number (args_p[0]);
delay (millisec);
- return jerry_create_boolean (true);
+ return jerry_boolean (true);
} /* js_delay */
/*
@@ -73,32 +73,32 @@ init_jerry ()
jerry_init (JERRY_INIT_EMPTY);
/* Create an empty JS object */
- jerry_value_t object = jerry_create_object ();
+ jerry_value_t object = jerry_object ();
jerry_value_t func_obj;
jerry_value_t prop_name;
- func_obj = jerry_create_external_function (set_led);
- prop_name = jerry_create_string ((const jerry_char_t *) "setLed");
- jerry_release_value (jerry_set_property (object, prop_name, func_obj));
- jerry_release_value (prop_name);
- jerry_release_value (func_obj);
+ func_obj = jerry_function_external (set_led);
+ prop_name = jerry_string_sz ("setLed");
+ jerry_value_free (jerry_object_set (object, prop_name, func_obj));
+ jerry_value_free (prop_name);
+ jerry_value_free (func_obj);
- func_obj = jerry_create_external_function (js_delay);
- prop_name = jerry_create_string ((const jerry_char_t *) "delay");
- jerry_release_value (jerry_set_property (object, prop_name, func_obj));
- jerry_release_value (prop_name);
- jerry_release_value (func_obj);
+ func_obj = jerry_function_external (js_delay);
+ prop_name = jerry_string_sz ("delay");
+ jerry_value_free (jerry_object_set (object, prop_name, func_obj));
+ jerry_value_free (prop_name);
+ jerry_value_free (func_obj);
/* Wrap the JS object (not empty anymore) into a jerry api value */
- jerry_value_t global_object = jerry_get_global_object ();
+ jerry_value_t global_object = jerry_current_realm ();
/* Add the JS object to the global context */
- prop_name = jerry_create_string ((const jerry_char_t *) "test");
- jerry_release_value (jerry_set_property (global_object, prop_name, object));
- jerry_release_value (prop_name);
- jerry_release_value (object);
- jerry_release_value (global_object);
+ prop_name = jerry_string_sz ("test");
+ jerry_value_free (jerry_object_set (global_object, prop_name, object));
+ jerry_value_free (prop_name);
+ jerry_value_free (object);
+ jerry_value_free (global_object);
} /* init_jerry */
/**
@@ -117,7 +117,7 @@ test_jerry ()
jerry_value_t eval_ret = jerry_eval (script, sizeof (script) - 1, JERRY_PARSE_NO_OPTS);
/* Free JavaScript value, returned by eval */
- jerry_release_value (eval_ret);
+ jerry_value_free (eval_ret);
} /* test_jerry */
/**
diff --git a/targets/riot-stm32f4/source/main-riotos.c b/targets/riot-stm32f4/source/main-riotos.c
index d17be877..9ffd355e 100644
--- a/targets/riot-stm32f4/source/main-riotos.c
+++ b/targets/riot-stm32f4/source/main-riotos.c
@@ -16,10 +16,12 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
-#include "shell.h"
+
+#include "jerryscript-port.h"
#include "jerryscript.h"
+
#include "jerryscript-ext/handler.h"
-#include "jerryscript-port.h"
+#include "shell.h"
/**
* Standalone Jerry exit codes
@@ -34,26 +36,27 @@ static void
register_js_function (const char *name_p, /**< name of the function */
jerry_external_handler_t handler_p) /**< function callback */
{
- jerry_value_t result_val = jerryx_handler_register_global ((const jerry_char_t *) name_p, handler_p);
+ jerry_value_t result_val = jerryx_handler_register_global (name_p, handler_p);
- if (jerry_value_is_error (result_val))
+ if (jerry_value_is_exception (result_val))
{
printf ("Warning: failed to register '%s' method.", name_p);
}
- jerry_release_value (result_val);
+ jerry_value_free (result_val);
} /* register_js_function */
/**
* Jerryscript simple test
*/
-int test_jerry (int argc, char **argv)
+int
+test_jerry (int argc, char **argv)
{
/* Suppress compiler errors */
(void) argc;
(void) argv;
- jerry_value_t ret_value = jerry_create_undefined ();
+ jerry_value_t ret_value = jerry_undefined ();
const jerry_char_t script[] = "print ('Hello, World!');";
printf ("This test run the following script code: [%s]\n\n", script);
@@ -67,7 +70,7 @@ int test_jerry (int argc, char **argv)
/* Setup Global scope code */
ret_value = jerry_parse (script, sizeof (script) - 1, NULL);
- if (!jerry_value_is_error (ret_value))
+ if (!jerry_value_is_exception (ret_value))
{
/* Execute the parsed source code in the Global scope */
ret_value = jerry_run (ret_value);
@@ -75,14 +78,14 @@ int test_jerry (int argc, char **argv)
int ret_code = JERRY_STANDALONE_EXIT_CODE_OK;
- if (jerry_value_is_error (ret_value))
+ if (jerry_value_is_exception (ret_value))
{
printf ("Script Error!");
ret_code = JERRY_STANDALONE_EXIT_CODE_FAIL;
}
- jerry_release_value (ret_value);
+ jerry_value_free (ret_value);
/* Cleanup engine */
jerry_cleanup ();
@@ -91,14 +94,17 @@ int test_jerry (int argc, char **argv)
} /* test_jerry */
-const shell_command_t shell_commands[] = {
- { "test", "Jerryscript Hello World test", test_jerry },
- { NULL, NULL, NULL }
-};
+const shell_command_t shell_commands[] = { { "test", "Jerryscript Hello World test", test_jerry },
+ { NULL, NULL, NULL } };
-int main (void)
+int
+main (void)
{
- 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);
printf ("You are running RIOT on a(n) %s board.\n", RIOT_BOARD);
printf ("This board features a(n) %s MCU.\n", RIOT_MCU);
diff --git a/targets/zephyr/src/jerry-module.c b/targets/zephyr/src/jerry-module.c
index 97f92dcf..209e047a 100644
--- a/targets/zephyr/src/jerry-module.c
+++ b/targets/zephyr/src/jerry-module.c
@@ -14,12 +14,12 @@
*/
#include <stdio.h>
-#include <string.h>
#include <stdlib.h>
+#include <string.h>
#include <unistd.h>
-#include "jerryscript.h"
#include "jerryscript-port.h"
+#include "jerryscript.h"
/**
* Computes the end of the directory part of a path.
@@ -102,8 +102,7 @@ typedef struct jerry_port_module_t
/**
* Native info descriptor for modules.
*/
-static const jerry_object_native_info_t jerry_port_module_native_info =
-{
+static const jerry_object_native_info_t jerry_port_module_native_info = {
.free_cb = NULL,
};
@@ -136,8 +135,8 @@ jerry_port_module_free (jerry_port_module_manager_t *manager_p, /**< module mana
if (release_all || module_p->realm == realm)
{
free (module_p->path_p);
- jerry_release_value (module_p->realm);
- jerry_release_value (module_p->module);
+ jerry_value_free (module_p->realm);
+ jerry_value_free (module_p->module);
free (module_p);
@@ -174,20 +173,18 @@ jerry_port_module_manager_init (void *user_data_p)
static void
jerry_port_module_manager_deinit (void *user_data_p) /**< context pointer to deinitialize */
{
- jerry_value_t undef = jerry_create_undefined ();
+ jerry_value_t undef = jerry_undefined ();
jerry_port_module_free ((jerry_port_module_manager_t *) user_data_p, undef);
- jerry_release_value (undef);
+ jerry_value_free (undef);
} /* jerry_port_module_manager_deinit */
/**
* Declare the context data manager for modules.
*/
-static const jerry_context_data_manager_t jerry_port_module_manager =
-{
- .init_cb = jerry_port_module_manager_init,
- .deinit_cb = jerry_port_module_manager_deinit,
- .bytes_needed = sizeof (jerry_port_module_manager_t)
-};
+static const jerry_context_data_manager_t jerry_port_module_manager = { .init_cb = jerry_port_module_manager_init,
+ .deinit_cb = jerry_port_module_manager_deinit,
+ .bytes_needed =
+ sizeof (jerry_port_module_manager_t) };
/**
* Default module resolver.
@@ -201,44 +198,43 @@ jerry_port_module_resolve (const jerry_value_t specifier, /**< module specifier
{
(void) user_p;
- jerry_port_module_t *module_p;
+ jerry_port_module_t *module_p = jerry_object_get_native_ptr (referrer, &jerry_port_module_native_info);
const jerry_char_t *base_path_p = NULL;
size_t base_path_length = 0;
- if (jerry_get_object_native_pointer (referrer, (void **) &module_p, &jerry_port_module_native_info))
+ if (module_p != NULL)
{
base_path_p = module_p->path_p;
base_path_length = module_p->base_path_length;
}
- jerry_size_t in_path_length = jerry_get_utf8_string_size (specifier);
+ jerry_size_t in_path_length = jerry_string_size (specifier, JERRY_ENCODING_UTF8);
jerry_char_t *in_path_p = (jerry_char_t *) malloc (in_path_length + 1);
- jerry_string_to_utf8_char_buffer (specifier, in_path_p, in_path_length);
+ jerry_string_to_buffer (specifier, JERRY_ENCODING_UTF8, in_path_p, in_path_length);
in_path_p[in_path_length] = '\0';
jerry_char_t *path_p = jerry_port_normalize_path (in_path_p, in_path_length, base_path_p, base_path_length);
if (path_p == NULL)
{
- return jerry_create_error (JERRY_ERROR_COMMON, (const jerry_char_t *) "Out of memory");
+ return jerry_throw_sz (JERRY_ERROR_COMMON, "Out of memory");
}
- jerry_value_t realm = jerry_get_global_object ();
+ jerry_value_t realm = jerry_current_realm ();
jerry_port_module_manager_t *manager_p;
- manager_p = (jerry_port_module_manager_t *) jerry_get_context_data (&jerry_port_module_manager);
+ manager_p = (jerry_port_module_manager_t *) jerry_context_data (&jerry_port_module_manager);
module_p = manager_p->module_head_p;
while (module_p != NULL)
{
- if (module_p->realm == realm
- && strcmp ((const char *) module_p->path_p, (const char *) path_p) == 0)
+ if (module_p->realm == realm && strcmp ((const char *) module_p->path_p, (const char *) path_p) == 0)
{
free (path_p);
free (in_path_p);
- jerry_release_value (realm);
- return jerry_acquire_value (module_p->module);
+ jerry_value_free (realm);
+ return jerry_value_copy (module_p->module);
}
module_p = module_p->next_p;
@@ -251,28 +247,24 @@ jerry_port_module_resolve (const jerry_value_t specifier, /**< module specifier
{
free (path_p);
free (in_path_p);
- jerry_release_value (realm);
- /* TODO: This is incorrect, but makes test262 module tests pass
- * (they should throw SyntaxError, but not because the module cannot be found). */
- return jerry_create_error (JERRY_ERROR_SYNTAX, (const jerry_char_t *) "Module file not found");
+ jerry_value_free (realm);
+ return jerry_throw_sz (JERRY_ERROR_SYNTAX, "Module file not found");
}
jerry_parse_options_t parse_options;
- parse_options.options = JERRY_PARSE_MODULE | JERRY_PARSE_HAS_RESOURCE;
- parse_options.resource_name = jerry_create_string_sz ((const jerry_char_t *) in_path_p, in_path_length);
+ parse_options.options = JERRY_PARSE_MODULE | JERRY_PARSE_HAS_SOURCE_NAME;
+ parse_options.source_name = jerry_string ((const jerry_char_t *) in_path_p, in_path_length, JERRY_ENCODING_UTF8);
- jerry_value_t ret_value = jerry_parse (source_p,
- source_size,
- &parse_options);
+ jerry_value_t ret_value = jerry_parse (source_p, source_size, &parse_options);
- jerry_release_value (parse_options.resource_name);
+ jerry_value_free (parse_options.source_name);
jerry_port_release_source (source_p);
free (in_path_p);
- if (jerry_value_is_error (ret_value))
+ if (jerry_value_is_exception (ret_value))
{
free (path_p);
- jerry_release_value (realm);
+ jerry_value_free (realm);
return ret_value;
}
@@ -282,9 +274,9 @@ jerry_port_module_resolve (const jerry_value_t specifier, /**< module specifier
module_p->path_p = path_p;
module_p->base_path_length = jerry_port_get_directory_end (module_p->path_p);
module_p->realm = realm;
- module_p->module = jerry_acquire_value (ret_value);
+ module_p->module = jerry_value_copy (ret_value);
- jerry_set_object_native_pointer (ret_value, module_p, &jerry_port_module_native_info);
+ jerry_object_set_native_ptr (ret_value, &jerry_port_module_native_info, module_p);
manager_p->module_head_p = module_p;
return ret_value;
@@ -297,6 +289,5 @@ void
jerry_port_module_release (const jerry_value_t realm) /**< if this argument is object, release only those modules,
* which realm value is equal to this argument. */
{
- jerry_port_module_free ((jerry_port_module_manager_t *) jerry_get_context_data (&jerry_port_module_manager),
- realm);
+ jerry_port_module_free ((jerry_port_module_manager_t *) jerry_context_data (&jerry_port_module_manager), realm);
} /* jerry_port_module_release */
diff --git a/targets/zephyr/src/main-zephyr.c b/targets/zephyr/src/main-zephyr.c
index c0d02cff..db81a3c2 100644
--- a/targets/zephyr/src/main-zephyr.c
+++ b/targets/zephyr/src/main-zephyr.c
@@ -14,16 +14,16 @@
*/
#include <stdio.h>
-#include <string.h>
#include <stdlib.h>
-
+#include <string.h>
#include <zephyr.h>
-#include <sys/printk.h>
-#include "getline-zephyr.h"
-#include "jerryscript.h"
#include "jerryscript-port.h"
+#include "jerryscript.h"
+
+#include "getline-zephyr.h"
#include "jerryscript-ext/handler.h"
+#include <sys/printk.h>
static jerry_value_t print_function;
@@ -34,25 +34,24 @@ static void
register_js_function (const char *name_p, /**< name of the function */
jerry_external_handler_t handler_p) /**< function callback */
{
- jerry_value_t result_val = jerryx_handler_register_global ((const jerry_char_t *) name_p, handler_p);
+ jerry_value_t result_val = jerryx_handler_register_global (name_p, handler_p);
- if (jerry_value_is_error (result_val))
+ if (jerry_value_is_exception (result_val))
{
jerry_port_log (JERRY_LOG_LEVEL_WARNING, "Warning: failed to register '%s' method.", name_p);
}
- jerry_release_value (result_val);
+ jerry_value_free (result_val);
} /* register_js_function */
-static int shell_cmd_handler (char *source_buffer)
+static int
+shell_cmd_handler (char *source_buffer)
{
jerry_value_t ret_val;
- ret_val = jerry_eval ((jerry_char_t *) source_buffer,
- strlen (source_buffer),
- JERRY_PARSE_NO_OPTS);
+ ret_val = jerry_eval ((jerry_char_t *) source_buffer, strlen (source_buffer), JERRY_PARSE_NO_OPTS);
- if (jerry_value_is_error (ret_val))
+ if (jerry_value_is_exception (ret_val))
{
/* User-friendly error messages require at least "cp" JerryScript
profile. Include a message prefix in case "cp_minimal" profile
@@ -60,44 +59,47 @@ static int shell_cmd_handler (char *source_buffer)
printf ("Error executing statement: ");
/* Clear error flag, otherwise print call below won't produce any
output. */
- ret_val = jerry_get_value_from_error (ret_val, true);
+ ret_val = jerry_exception_value (ret_val, true);
}
- if (!jerry_value_is_error (print_function))
+ if (!jerry_value_is_exception (print_function))
{
- jerry_value_t ret_val_print = jerry_call_function (print_function,
- jerry_create_undefined (),
- &ret_val,
- 1);
- jerry_release_value (ret_val_print);
+ jerry_value_t ret_val_print = jerry_call (print_function, jerry_undefined (), &ret_val, 1);
+ jerry_value_free (ret_val_print);
}
- jerry_release_value (ret_val);
+ jerry_value_free (ret_val);
return 0;
} /* shell_cmd_handler */
-void main (void)
+void
+main (void)
{
- 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);
uint32_t zephyr_ver = sys_kernel_version_get ();
printf ("JerryScript build: " __DATE__ " " __TIME__ "\n");
printf ("JerryScript API %d.%d.%d\n", JERRY_API_MAJOR_VERSION, JERRY_API_MINOR_VERSION, JERRY_API_PATCH_VERSION);
- printf ("Zephyr version %d.%d.%d\n", (int)SYS_KERNEL_VER_MAJOR (zephyr_ver),
- (int)SYS_KERNEL_VER_MINOR (zephyr_ver),
- (int)SYS_KERNEL_VER_PATCHLEVEL (zephyr_ver));
+ printf ("Zephyr version %d.%d.%d\n",
+ (int) SYS_KERNEL_VER_MAJOR (zephyr_ver),
+ (int) SYS_KERNEL_VER_MINOR (zephyr_ver),
+ (int) SYS_KERNEL_VER_PATCHLEVEL (zephyr_ver));
zephyr_getline_init ();
jerry_init (JERRY_INIT_EMPTY);
register_js_function ("print", jerryx_handler_print);
- jerry_value_t global_obj_val = jerry_get_global_object ();
+ jerry_value_t global_obj_val = jerry_current_realm ();
- jerry_value_t print_func_name_val = jerry_create_string ((jerry_char_t *) "print");
- print_function = jerry_get_property (global_obj_val, print_func_name_val);
- jerry_release_value (print_func_name_val);
- jerry_release_value (global_obj_val);
- if (jerry_value_is_error (print_function))
+ jerry_value_t print_func_name_val = jerry_string_sz ("print");
+ print_function = jerry_object_get (global_obj_val, print_func_name_val);
+ jerry_value_free (print_func_name_val);
+ jerry_value_free (global_obj_val);
+ if (jerry_value_is_exception (print_function))
{
printf ("Error: could not look up print function, expression results won't be printed\n");
}
@@ -105,8 +107,8 @@ void main (void)
while (1)
{
char *s;
- printf("js> ");
- fflush(stdout);
+ printf ("js> ");
+ fflush (stdout);
s = zephyr_getline ();
if (*s)
{