@@ -205,14 +205,19 @@ struct FinalizeData {
205
205
});
206
206
}
207
207
208
- #ifdef NODE_API_EXPERIMENTAL_HAS_POST_FINALIZER
208
+ #if defined( NODE_API_EXPERIMENTAL_HAS_POST_FINALIZER)
209
209
template <typename F = Finalizer,
210
210
typename = std::enable_if_t <
211
211
!std::is_invocable_v<F, node_api_nogc_env, T*>>,
212
212
typename = void >
213
213
static inline void Wrapper (node_api_nogc_env env,
214
214
void * data,
215
215
void * finalizeHint) NAPI_NOEXCEPT {
216
+ #ifdef NODE_ADDON_API_REQUIRE_BASIC_FINALIZERS
217
+ static_assert (false ,
218
+ " NODE_ADDON_API_REQUIRE_BASIC_FINALIZERS defined: Finalizer "
219
+ " must be basic." );
220
+ #endif
216
221
napi_status status =
217
222
node_api_post_finalizer (env, WrapperGC, data, finalizeHint);
218
223
NAPI_FATAL_IF_FAILED (
@@ -235,14 +240,19 @@ struct FinalizeData {
235
240
});
236
241
}
237
242
238
- #ifdef NODE_API_EXPERIMENTAL_HAS_POST_FINALIZER
243
+ #if defined( NODE_API_EXPERIMENTAL_HAS_POST_FINALIZER)
239
244
template <typename F = Finalizer,
240
245
typename = std::enable_if_t <
241
246
!std::is_invocable_v<F, node_api_nogc_env, T*, Hint*>>,
242
247
typename = void >
243
248
static inline void WrapperWithHint (node_api_nogc_env env,
244
249
void * data,
245
250
void * finalizeHint) NAPI_NOEXCEPT {
251
+ #ifdef NODE_ADDON_API_REQUIRE_BASIC_FINALIZERS
252
+ static_assert (false ,
253
+ " NODE_ADDON_API_REQUIRE_BASIC_FINALIZERS defined: Finalizer "
254
+ " must be basic." );
255
+ #endif
246
256
napi_status status =
247
257
node_api_post_finalizer (env, WrapperGCWithHint, data, finalizeHint);
248
258
NAPI_FATAL_IF_FAILED (
0 commit comments