|
1 | 1 | #ifndef SRC_NODE_API_H_ |
2 | 2 | #define SRC_NODE_API_H_ |
3 | 3 |
|
4 | | -#ifdef BUILDING_NODE_EXTENSION |
| 4 | +#if defined(BUILDING_NODE_EXTENSION) && !defined(NAPI_EXTERN) |
5 | 5 | #ifdef _WIN32 |
6 | 6 | // Building native addon against node |
7 | 7 | #define NAPI_EXTERN __declspec(dllimport) |
8 | | -#elif defined(__wasm32__) |
| 8 | +#elif defined(__wasm__) |
9 | 9 | #define NAPI_EXTERN __attribute__((__import_module__("napi"))) |
10 | 10 | #endif |
11 | 11 | #endif |
@@ -17,8 +17,13 @@ struct uv_loop_s; // Forward declaration. |
17 | 17 | #ifdef _WIN32 |
18 | 18 | #define NAPI_MODULE_EXPORT __declspec(dllexport) |
19 | 19 | #else |
| 20 | +#ifdef __EMSCRIPTEN__ |
| 21 | +#define NAPI_MODULE_EXPORT \ |
| 22 | + __attribute__((visibility("default"))) __attribute__((used)) |
| 23 | +#else |
20 | 24 | #define NAPI_MODULE_EXPORT __attribute__((visibility("default"))) |
21 | 25 | #endif |
| 26 | +#endif |
22 | 27 |
|
23 | 28 | #if defined(__GNUC__) |
24 | 29 | #define NAPI_NO_RETURN __attribute__((noreturn)) |
@@ -49,7 +54,7 @@ typedef struct napi_module { |
49 | 54 | NAPI_MODULE_INITIALIZER_X_HELPER(base, version) |
50 | 55 | #define NAPI_MODULE_INITIALIZER_X_HELPER(base, version) base##version |
51 | 56 |
|
52 | | -#ifdef __wasm32__ |
| 57 | +#ifdef __wasm__ |
53 | 58 | #define NAPI_MODULE_INITIALIZER_BASE napi_register_wasm_v |
54 | 59 | #else |
55 | 60 | #define NAPI_MODULE_INITIALIZER_BASE napi_register_module_v |
@@ -143,7 +148,6 @@ NAPI_EXTERN napi_status NAPI_CDECL napi_get_buffer_info(napi_env env, |
143 | 148 | void** data, |
144 | 149 | size_t* length); |
145 | 150 |
|
146 | | -#ifndef __wasm32__ |
147 | 151 | // Methods to manage simple async operations |
148 | 152 | NAPI_EXTERN napi_status NAPI_CDECL |
149 | 153 | napi_create_async_work(napi_env env, |
@@ -159,7 +163,6 @@ NAPI_EXTERN napi_status NAPI_CDECL napi_queue_async_work(napi_env env, |
159 | 163 | napi_async_work work); |
160 | 164 | NAPI_EXTERN napi_status NAPI_CDECL napi_cancel_async_work(napi_env env, |
161 | 165 | napi_async_work work); |
162 | | -#endif // __wasm32__ |
163 | 166 |
|
164 | 167 | // version management |
165 | 168 | NAPI_EXTERN napi_status NAPI_CDECL |
@@ -197,7 +200,6 @@ napi_close_callback_scope(napi_env env, napi_callback_scope scope); |
197 | 200 |
|
198 | 201 | #if NAPI_VERSION >= 4 |
199 | 202 |
|
200 | | -#ifndef __wasm32__ |
201 | 203 | // Calling into JS from other threads |
202 | 204 | NAPI_EXTERN napi_status NAPI_CDECL |
203 | 205 | napi_create_threadsafe_function(napi_env env, |
@@ -231,7 +233,6 @@ napi_unref_threadsafe_function(napi_env env, napi_threadsafe_function func); |
231 | 233 |
|
232 | 234 | NAPI_EXTERN napi_status NAPI_CDECL |
233 | 235 | napi_ref_threadsafe_function(napi_env env, napi_threadsafe_function func); |
234 | | -#endif // __wasm32__ |
235 | 236 |
|
236 | 237 | #endif // NAPI_VERSION >= 4 |
237 | 238 |
|
|