|
5 | 5 | #ifdef _WIN32
|
6 | 6 | // Building native module against node
|
7 | 7 | #define NAPI_EXTERN __declspec(dllimport)
|
| 8 | + #elif defined(__wasm32__) |
| 9 | + #define NAPI_EXTERN __attribute__((__import_module__("napi"))) |
8 | 10 | #endif
|
9 | 11 | #endif
|
10 | 12 | #include "js_native_api.h"
|
@@ -71,8 +73,18 @@ typedef struct {
|
71 | 73 | } \
|
72 | 74 | EXTERN_C_END
|
73 | 75 |
|
| 76 | +#ifdef __wasm32__ |
| 77 | +#define NAPI_MODULE(modname, regfunc) \ |
| 78 | + EXTERN_C_START \ |
| 79 | + NAPI_MODULE_EXPORT napi_value _napi_register(napi_env env, \ |
| 80 | + napi_value exports) { \ |
| 81 | + return regfunc(env, exports); \ |
| 82 | + } \ |
| 83 | + EXTERN_C_END |
| 84 | +#else |
74 | 85 | #define NAPI_MODULE(modname, regfunc) \
|
75 | 86 | NAPI_MODULE_X(modname, regfunc, NULL, 0) // NOLINT (readability/null_usage)
|
| 87 | +#endif |
76 | 88 |
|
77 | 89 | #define NAPI_MODULE_INITIALIZER_BASE napi_register_module_v
|
78 | 90 |
|
@@ -196,6 +208,7 @@ NAPI_EXTERN napi_status napi_close_callback_scope(napi_env env,
|
196 | 208 |
|
197 | 209 | #if NAPI_VERSION >= 4
|
198 | 210 |
|
| 211 | +#ifndef __wasm32__ |
199 | 212 | // Calling into JS from other threads
|
200 | 213 | NAPI_EXTERN napi_status
|
201 | 214 | napi_create_threadsafe_function(napi_env env,
|
@@ -231,6 +244,7 @@ napi_unref_threadsafe_function(napi_env env, napi_threadsafe_function func);
|
231 | 244 |
|
232 | 245 | NAPI_EXTERN napi_status
|
233 | 246 | napi_ref_threadsafe_function(napi_env env, napi_threadsafe_function func);
|
| 247 | +#endif // __wasm32__ |
234 | 248 |
|
235 | 249 | #endif // NAPI_VERSION >= 4
|
236 | 250 |
|
|
0 commit comments