@emnapi/node-binding 0.38.3 → 0.40.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.d.ts +2 -0
- package/package.json +1 -1
- package/src/napi.c +39 -0
package/index.d.ts
CHANGED
package/package.json
CHANGED
package/src/napi.c
CHANGED
|
@@ -109,6 +109,37 @@ static napi_value napi_make_callback_js(napi_env env, napi_callback_info info) {
|
|
|
109
109
|
return ret;
|
|
110
110
|
} */
|
|
111
111
|
|
|
112
|
+
static napi_value napi_fatal_error_js(napi_env env, napi_callback_info info) {
|
|
113
|
+
napi_value argv[2];
|
|
114
|
+
size_t argc = 2;
|
|
115
|
+
NAPI_ASSERT(napi_get_cb_info(env, info, &argc, argv, NULL, NULL));
|
|
116
|
+
|
|
117
|
+
char *location;
|
|
118
|
+
size_t location_len;
|
|
119
|
+
char *message;
|
|
120
|
+
size_t message_len;
|
|
121
|
+
|
|
122
|
+
NAPI_ASSERT(napi_get_value_string_utf8(env, argv[0], NULL, 0, &location_len));
|
|
123
|
+
NAPI_ASSERT(napi_get_value_string_utf8(env, argv[1], NULL, 0, &message_len));
|
|
124
|
+
location = (char*)malloc(location_len + 1);
|
|
125
|
+
assert(location != NULL);
|
|
126
|
+
NAPI_ASSERT(napi_get_value_string_utf8(env, argv[0], location, location_len + 1, &location_len));
|
|
127
|
+
message = (char*)malloc(message_len + 1);
|
|
128
|
+
assert(location != NULL);
|
|
129
|
+
NAPI_ASSERT(napi_get_value_string_utf8(env, argv[1], message, message_len + 1, &message_len));
|
|
130
|
+
|
|
131
|
+
napi_fatal_error(location, location_len, message, message_len);
|
|
132
|
+
return NULL;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
static napi_value napi_fatal_exception_js(napi_env env, napi_callback_info info) {
|
|
136
|
+
napi_value argv;
|
|
137
|
+
size_t argc = 1;
|
|
138
|
+
NAPI_ASSERT(napi_get_cb_info(env, info, &argc, &argv, NULL, NULL));
|
|
139
|
+
NAPI_ASSERT(napi_fatal_exception(env, argv));
|
|
140
|
+
return NULL;
|
|
141
|
+
}
|
|
142
|
+
|
|
112
143
|
NAPI_MODULE_INIT() {
|
|
113
144
|
napi_value ai;
|
|
114
145
|
NAPI_ASSERT(napi_create_function(env, "asyncInit", NAPI_AUTO_LENGTH, napi_async_init_js, NULL, &ai));
|
|
@@ -126,5 +157,13 @@ NAPI_MODULE_INIT() {
|
|
|
126
157
|
napi_create_function(env, "napiOpenCallbackScope", NAPI_AUTO_LENGTH, napi_open_callback_scope_js, NULL, &ocs);
|
|
127
158
|
napi_set_named_property(env, exports, "napiOpenCallbackScope", ocs); */
|
|
128
159
|
|
|
160
|
+
napi_value fatal_error;
|
|
161
|
+
NAPI_ASSERT(napi_create_function(env, "fatalError", NAPI_AUTO_LENGTH, napi_fatal_error_js, NULL, &fatal_error));
|
|
162
|
+
NAPI_ASSERT(napi_set_named_property(env, exports, "fatalError", fatal_error));
|
|
163
|
+
|
|
164
|
+
napi_value fatal_exception;
|
|
165
|
+
NAPI_ASSERT(napi_create_function(env, "fatalException", NAPI_AUTO_LENGTH, napi_fatal_exception_js, NULL, &fatal_exception));
|
|
166
|
+
NAPI_ASSERT(napi_set_named_property(env, exports, "fatalException", fatal_exception));
|
|
167
|
+
|
|
129
168
|
return exports;
|
|
130
169
|
}
|