diff options
Diffstat (limited to 'test/addons-napi/3_callbacks/binding.c')
-rw-r--r-- | test/addons-napi/3_callbacks/binding.c | 44 |
1 files changed, 18 insertions, 26 deletions
diff --git a/test/addons-napi/3_callbacks/binding.c b/test/addons-napi/3_callbacks/binding.c index 10e7318bce..47360bd979 100644 --- a/test/addons-napi/3_callbacks/binding.c +++ b/test/addons-napi/3_callbacks/binding.c @@ -1,51 +1,43 @@ #include <node_api.h> +#include "../common.h" +#include <string.h> -#define NAPI_CALL(env, theCall) \ - if ((theCall) != napi_ok) { \ - const napi_extended_error_info* error; \ - napi_get_last_error_info((env), &error); \ - const char* errorMessage = error->error_message; \ - errorMessage = errorMessage ? errorMessage : "empty error message"; \ - napi_throw_error((env), errorMessage); \ - return; \ - } - -void RunCallback(napi_env env, napi_callback_info info) { +napi_value RunCallback(napi_env env, napi_callback_info info) { + size_t argc = 1; napi_value args[1]; - NAPI_CALL(env, napi_get_cb_args(env, info, args, 1)); - - napi_value cb = args[0]; + NAPI_CALL(env, napi_get_cb_info(env, info, &argc, args, NULL, NULL)); napi_value argv[1]; - NAPI_CALL(env, napi_create_string_utf8(env, "hello world", -1, argv)); + const char* str = "hello world"; + size_t str_len = strlen(str); + NAPI_CALL(env, napi_create_string_utf8(env, str, str_len, argv)); napi_value global; NAPI_CALL(env, napi_get_global(env, &global)); + napi_value cb = args[0]; NAPI_CALL(env, napi_call_function(env, global, cb, 1, argv, NULL)); + + return NULL; } -void RunCallbackWithRecv(napi_env env, napi_callback_info info) { +napi_value RunCallbackWithRecv(napi_env env, napi_callback_info info) { + size_t argc = 2; napi_value args[2]; - NAPI_CALL(env, napi_get_cb_args(env, info, args, 2)); + NAPI_CALL(env, napi_get_cb_info(env, info, &argc, args, NULL, NULL)); napi_value cb = args[0]; napi_value recv = args[1]; - NAPI_CALL(env, napi_call_function(env, recv, cb, 0, NULL, NULL)); + return NULL; } -#define DECLARE_NAPI_METHOD(name, func) \ - { name, func, 0, 0, 0, napi_default, 0 } - void Init(napi_env env, napi_value exports, napi_value module, void* priv) { - napi_status status; napi_property_descriptor desc[2] = { - DECLARE_NAPI_METHOD("RunCallback", RunCallback), - DECLARE_NAPI_METHOD("RunCallbackWithRecv", RunCallbackWithRecv), + DECLARE_NAPI_PROPERTY("RunCallback", RunCallback), + DECLARE_NAPI_PROPERTY("RunCallbackWithRecv", RunCallbackWithRecv), }; - status = napi_define_properties(env, exports, 2, desc); - if (status != napi_ok) return; + NAPI_CALL_RETURN_VOID(env, napi_define_properties(env, exports, 2, desc)); } NAPI_MODULE(addon, Init) |