Мне сложно понять, как правильно использовать HandleScope и EscapableHandleScope . Например, с пример этого узла :
MyObject::MyObject(const Napi::CallbackInfo& info) : Napi::ObjectWrap<MyObject>(info) {
Napi::Env env = info.Env();
Napi::HandleScope scope(env);
this->val_ = info[0].As<Napi::Number>().DoubleValue();
};
Зачем нам в этом случае создавать новый HandleScope? А из это другой пример :
Napi::Object CreateObject(const Napi::CallbackInfo& info) {
Napi::Env env = info.Env();
Napi::Object obj = Napi::Object::New(env);
obj.Set(Napi::String::New(env, "msg"), info[0].ToString());
return obj;
}
Почему это здесь не нужно?
Кроме того, я не нашел ни одного примера использования EscapableHandleScope, когда это необходимо?