|
12 | 12 |
|
13 | 13 | #include <algorithm> |
14 | 14 | #include <cstring> |
15 | | -#if defined(__EMSCRIPTEN_PTHREADS__) || defined(_REENTRANT) |
| 15 | +#if NAPI_HAS_THREADS |
16 | 16 | #include <mutex> |
17 | 17 | #endif |
18 | 18 | #include <type_traits> |
@@ -203,7 +203,7 @@ struct FinalizeData { |
203 | 203 | Hint* hint; |
204 | 204 | }; |
205 | 205 |
|
206 | | -#if (NAPI_VERSION > 3 && (defined(__EMSCRIPTEN_PTHREADS__) || defined(_REENTRANT))) |
| 206 | +#if (NAPI_VERSION > 3 && NAPI_HAS_THREADS) |
207 | 207 | template <typename ContextType = void, |
208 | 208 | typename Finalizer = std::function<void(Env, void*, ContextType*)>, |
209 | 209 | typename FinalizerDataType = void> |
@@ -297,7 +297,7 @@ napi_value DefaultCallbackWrapper(napi_env env, Napi::Function cb) { |
297 | 297 | return cb; |
298 | 298 | } |
299 | 299 | #endif // NAPI_VERSION > 4 |
300 | | -#endif // NAPI_VERSION > 3 && (defined(__EMSCRIPTEN_PTHREADS__) || defined(_REENTRANT)) |
| 300 | +#endif // NAPI_VERSION > 3 && NAPI_HAS_THREADS |
301 | 301 |
|
302 | 302 | template <typename Getter, typename Setter> |
303 | 303 | struct AccessorCallbackData { |
@@ -331,9 +331,9 @@ struct AccessorCallbackData { |
331 | 331 |
|
332 | 332 | } // namespace details |
333 | 333 |
|
334 | | -// #ifndef NODE_ADDON_API_DISABLE_DEPRECATED |
335 | | -// #include "napi-inl.deprecated.h" |
336 | | -// #endif // !NODE_ADDON_API_DISABLE_DEPRECATED |
| 334 | +#ifndef NODE_ADDON_API_DISABLE_DEPRECATED |
| 335 | +#include "napi-inl.deprecated.h" |
| 336 | +#endif // !NODE_ADDON_API_DISABLE_DEPRECATED |
337 | 337 |
|
338 | 338 | //////////////////////////////////////////////////////////////////////////////// |
339 | 339 | // Module registration |
@@ -1628,6 +1628,19 @@ inline MaybeOrValue<bool> Object::Seal() const { |
1628 | 1628 | napi_status status = napi_object_seal(_env, _value); |
1629 | 1629 | NAPI_RETURN_OR_THROW_IF_FAILED(_env, status, status == napi_ok, bool); |
1630 | 1630 | } |
| 1631 | + |
| 1632 | +inline void Object::TypeTag(const napi_type_tag* type_tag) const { |
| 1633 | + napi_status status = napi_type_tag_object(_env, _value, type_tag); |
| 1634 | + NAPI_THROW_IF_FAILED_VOID(_env, status); |
| 1635 | +} |
| 1636 | + |
| 1637 | +inline bool Object::CheckTypeTag(const napi_type_tag* type_tag) const { |
| 1638 | + bool result; |
| 1639 | + napi_status status = |
| 1640 | + napi_check_object_type_tag(_env, _value, type_tag, &result); |
| 1641 | + NAPI_THROW_IF_FAILED(_env, status, false); |
| 1642 | + return result; |
| 1643 | +} |
1631 | 1644 | #endif // NAPI_VERSION >= 8 |
1632 | 1645 |
|
1633 | 1646 | //////////////////////////////////////////////////////////////////////////////// |
@@ -4638,35 +4651,35 @@ inline Value EscapableHandleScope::Escape(napi_value escapee) { |
4638 | 4651 | return Value(_env, result); |
4639 | 4652 | } |
4640 | 4653 |
|
4641 | | -// #if (NAPI_VERSION > 2) |
4642 | | -// //////////////////////////////////////////////////////////////////////////////// |
4643 | | -// // CallbackScope class |
4644 | | -// //////////////////////////////////////////////////////////////////////////////// |
| 4654 | +#if (NAPI_VERSION > 2 && !defined(__wasm__)) |
| 4655 | +//////////////////////////////////////////////////////////////////////////////// |
| 4656 | +// CallbackScope class |
| 4657 | +//////////////////////////////////////////////////////////////////////////////// |
4645 | 4658 |
|
4646 | | -// inline CallbackScope::CallbackScope(napi_env env, napi_callback_scope scope) |
4647 | | -// : _env(env), _scope(scope) {} |
| 4659 | +inline CallbackScope::CallbackScope(napi_env env, napi_callback_scope scope) |
| 4660 | + : _env(env), _scope(scope) {} |
4648 | 4661 |
|
4649 | | -// inline CallbackScope::CallbackScope(napi_env env, napi_async_context context) |
4650 | | -// : _env(env) { |
4651 | | -// napi_status status = |
4652 | | -// napi_open_callback_scope(_env, Object::New(env), context, &_scope); |
4653 | | -// NAPI_THROW_IF_FAILED_VOID(_env, status); |
4654 | | -// } |
| 4662 | +inline CallbackScope::CallbackScope(napi_env env, napi_async_context context) |
| 4663 | + : _env(env) { |
| 4664 | + napi_status status = |
| 4665 | + napi_open_callback_scope(_env, Object::New(env), context, &_scope); |
| 4666 | + NAPI_THROW_IF_FAILED_VOID(_env, status); |
| 4667 | +} |
4655 | 4668 |
|
4656 | | -// inline CallbackScope::~CallbackScope() { |
4657 | | -// napi_status status = napi_close_callback_scope(_env, _scope); |
4658 | | -// NAPI_FATAL_IF_FAILED( |
4659 | | -// status, "CallbackScope::~CallbackScope", "napi_close_callback_scope"); |
4660 | | -// } |
| 4669 | +inline CallbackScope::~CallbackScope() { |
| 4670 | + napi_status status = napi_close_callback_scope(_env, _scope); |
| 4671 | + NAPI_FATAL_IF_FAILED( |
| 4672 | + status, "CallbackScope::~CallbackScope", "napi_close_callback_scope"); |
| 4673 | +} |
4661 | 4674 |
|
4662 | | -// inline CallbackScope::operator napi_callback_scope() const { |
4663 | | -// return _scope; |
4664 | | -// } |
| 4675 | +inline CallbackScope::operator napi_callback_scope() const { |
| 4676 | + return _scope; |
| 4677 | +} |
4665 | 4678 |
|
4666 | | -// inline Napi::Env CallbackScope::Env() const { |
4667 | | -// return Napi::Env(_env); |
4668 | | -// } |
4669 | | -// #endif |
| 4679 | +inline Napi::Env CallbackScope::Env() const { |
| 4680 | + return Napi::Env(_env); |
| 4681 | +} |
| 4682 | +#endif |
4670 | 4683 |
|
4671 | 4684 | //////////////////////////////////////////////////////////////////////////////// |
4672 | 4685 | // AsyncContext class |
@@ -4722,6 +4735,8 @@ inline Napi::Env AsyncContext::Env() const { |
4722 | 4735 | // AsyncWorker class |
4723 | 4736 | //////////////////////////////////////////////////////////////////////////////// |
4724 | 4737 |
|
| 4738 | +#if NAPI_HAS_THREADS |
| 4739 | + |
4725 | 4740 | inline AsyncWorker::AsyncWorker(const Function& callback) |
4726 | 4741 | : AsyncWorker(callback, "generic") {} |
4727 | 4742 |
|
@@ -4803,29 +4818,6 @@ inline void AsyncWorker::Destroy() { |
4803 | 4818 | delete this; |
4804 | 4819 | } |
4805 | 4820 |
|
4806 | | -inline AsyncWorker::AsyncWorker(AsyncWorker&& other) { |
4807 | | - _env = other._env; |
4808 | | - other._env = nullptr; |
4809 | | - _work = other._work; |
4810 | | - other._work = nullptr; |
4811 | | - _receiver = std::move(other._receiver); |
4812 | | - _callback = std::move(other._callback); |
4813 | | - _error = std::move(other._error); |
4814 | | - _suppress_destruct = other._suppress_destruct; |
4815 | | -} |
4816 | | - |
4817 | | -inline AsyncWorker& AsyncWorker::operator=(AsyncWorker&& other) { |
4818 | | - _env = other._env; |
4819 | | - other._env = nullptr; |
4820 | | - _work = other._work; |
4821 | | - other._work = nullptr; |
4822 | | - _receiver = std::move(other._receiver); |
4823 | | - _callback = std::move(other._callback); |
4824 | | - _error = std::move(other._error); |
4825 | | - _suppress_destruct = other._suppress_destruct; |
4826 | | - return *this; |
4827 | | -} |
4828 | | - |
4829 | 4821 | inline AsyncWorker::operator napi_async_work() const { |
4830 | 4822 | return _work; |
4831 | 4823 | } |
@@ -4923,7 +4915,9 @@ inline void AsyncWorker::OnWorkComplete(Napi::Env /*env*/, napi_status status) { |
4923 | 4915 | } |
4924 | 4916 | } |
4925 | 4917 |
|
4926 | | -#if (NAPI_VERSION > 3 && (defined(__EMSCRIPTEN_PTHREADS__) || defined(_REENTRANT))) |
| 4918 | +#endif // NAPI_HAS_THREADS |
| 4919 | + |
| 4920 | +#if (NAPI_VERSION > 3 && NAPI_HAS_THREADS) |
4927 | 4921 | //////////////////////////////////////////////////////////////////////////////// |
4928 | 4922 | // TypedThreadSafeFunction<ContextType,DataType,CallJs> class |
4929 | 4923 | //////////////////////////////////////////////////////////////////////////////// |
@@ -6172,7 +6166,7 @@ inline void AsyncProgressQueueWorker<T>::ExecutionProgress::Send( |
6172 | 6166 | const T* data, size_t count) const { |
6173 | 6167 | _worker->SendProgress_(data, count); |
6174 | 6168 | } |
6175 | | -#endif // NAPI_VERSION > 3 && (defined(__EMSCRIPTEN_PTHREADS__) || defined(_REENTRANT)) |
| 6169 | +#endif // NAPI_VERSION > 3 && NAPI_HAS_THREADS |
6176 | 6170 |
|
6177 | 6171 | //////////////////////////////////////////////////////////////////////////////// |
6178 | 6172 | // Memory Management class |
|
0 commit comments