Safer way to set object prototype
Currently there is no direct equivalent API to v8::Object::SetPrototype in NAPI, so to set the prototype of an object you have to get and invoke Object.setPrototypeOf from the global object. This is unsafe as it is configurable so can be overridden by other JS code, leading to potential crashes. The Node.js built-in APIs use the primordials module to address this issue, but it is inaccessible to user code. I think there should be a direct API for setting object prototype, as napi_get_prototype already exists, and it is needed for classes created with napi_define_class to extend each other.
Hi @ruochenjia ,
Since node-addon-api is a wrapper for the underlying Node-API, there would need to be an node_api_set_prototype API call in order for node-addon-api to wrap it. Right now, all node-addon-api can do is to call Object.setPrototypeOf which has the issues that you mentioned.
Could you create a Feature Request issue in https://github.com/nodejs/node?