1*b7d1787dSŁukasz Kosmaty #include "JSReferencesCache.h" 2*b7d1787dSŁukasz Kosmaty 3*b7d1787dSŁukasz Kosmaty namespace expo { JSReferencesCache(jsi::Runtime & runtime)4*b7d1787dSŁukasz KosmatyJSReferencesCache::JSReferencesCache(jsi::Runtime &runtime) { 5*b7d1787dSŁukasz Kosmaty jsObjectRegistry.emplace( 6*b7d1787dSŁukasz Kosmaty JSKeys::PROMISE, 7*b7d1787dSŁukasz Kosmaty std::make_unique<jsi::Object>( 8*b7d1787dSŁukasz Kosmaty runtime.global().getPropertyAsFunction(runtime, "Promise") 9*b7d1787dSŁukasz Kosmaty ) 10*b7d1787dSŁukasz Kosmaty ); 11*b7d1787dSŁukasz Kosmaty } 12*b7d1787dSŁukasz Kosmaty getPropNameID(jsi::Runtime & runtime,const std::string & name)13*b7d1787dSŁukasz Kosmatyjsi::PropNameID &JSReferencesCache::getPropNameID( 14*b7d1787dSŁukasz Kosmaty jsi::Runtime &runtime, 15*b7d1787dSŁukasz Kosmaty const std::string &name 16*b7d1787dSŁukasz Kosmaty ) { 17*b7d1787dSŁukasz Kosmaty auto propName = propNameIDRegistry.find(name); 18*b7d1787dSŁukasz Kosmaty 19*b7d1787dSŁukasz Kosmaty if (propName == propNameIDRegistry.end()) { 20*b7d1787dSŁukasz Kosmaty auto propNameID = std::make_unique<jsi::PropNameID>(jsi::PropNameID::forAscii(runtime, name)); 21*b7d1787dSŁukasz Kosmaty auto [result, _] = propNameIDRegistry.emplace(name, std::move(propNameID)); 22*b7d1787dSŁukasz Kosmaty return *result->second; 23*b7d1787dSŁukasz Kosmaty } 24*b7d1787dSŁukasz Kosmaty return *propName->second; 25*b7d1787dSŁukasz Kosmaty } 26*b7d1787dSŁukasz Kosmaty } // namespace expo 27