-
-
Notifications
You must be signed in to change notification settings - Fork 488
Description
Following up on our discussion during the meeting, let's jot down the possible names we'd like to use instead of env
and nogc_env
. Here are the scenarios I can think of so far:
napi_status napi_get_instance_data(_____ env, void** data); // currently node_api_nogc_env
void my_sync_finalizer(_____ env, void* data, void* hint); // currently node_api_nogc_env
void my_regular_finalizer(_____ env, void* data, void* hint); // currently napi_env
typedef void (*_____)(_____ env, void* data, void* hint); // currently napi_finalizer
typedef void (*_____)(_____ env, void* data, void* hint); // currently node_api_nogc_finalizer
napi_status napi_create_object(_____ env, napi_value* result); // currently napi_env
Inspired my Michael's emphasis that we're dealing with a base class - subclass relationship, I was thinking,
napi_status napi_get_instance_data(node_api_basic_env env, void** data);
void my_sync_finalizer(node_api_basic_env env, void* data, void* hint);
void my_regular_finalizer(napi_env env, void* data, void* hint);
typedef void (*napi_finalizer)(napi_env env, void* data, void* hint);
typedef void (*node_api_basic_finalizer)(node_api_basic_env, void* data, void* hint);
napi_status napi_create_object(napi_env env, napi_value* result);
since basic
conveys the idea that fewer things can be done when you only have a "basic" environment, and since folks might be familiar with the base class/subclass relationship, whereby if a function accepts a base class then one can pass either, whereas if the function accepts a subclass and one only has a base class handy, then the function is off-limits.
We also need not necessarily elaborate on why an environment is basic. The fact that the context of being in a sync finalizer and therefore unable to manipulate engine heap is the reason why some APIs are off-limits is something we can document, but not absolutely necessarily.
WDYT?