Closed
Description
I was updating the node-sass code to the current napi and I found an issue with napi_wrap check. So in napi_wrap, if we see the object is a wrapper, we return napi_invalid_arg. However, in node-sass, we do something like this:
template <class T>
napi_value SassValueWrapper<T>::get_js_object(napi_env env) {
if (this->js_object == nullptr) {
napi_value wrapper;
napi_value ctor = T::get_constructor(env);
CHECK_NAPI_RESULT(napi_new_instance(env, ctor, 0, nullptr, &wrapper));
void* wrapped;
CHECK_NAPI_RESULT(napi_unwrap(env, wrapper, &wrapped));
delete static_cast<T*>(wrapped);
CHECK_NAPI_RESULT(napi_wrap(env, wrapper, this, nullptr, nullptr, nullptr)); -----------> check failed
CHECK_NAPI_RESULT(napi_create_reference(env, wrapper, 1, &this->js_object));
}
Metadata
Metadata
Assignees
Labels
No labels