xref: /expo/packages/expo-modules-core/android/src/main/cpp/JSReferencesCache.cpp (revision 9e302745)
  • Home
  • History
  • Annotate
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #include "JSReferencesCache.h"
2 
3 namespace expo {
4 JSReferencesCache::JSReferencesCache(jsi::Runtime &runtime) {
5   jsObjectRegistry.emplace(
6     JSKeys::PROMISE,
7     std::make_unique<jsi::Object>(
8       runtime.global().getPropertyAsFunction(runtime, "Promise")
9     )
10   );
11 }
12 
13 jsi::PropNameID &JSReferencesCache::getPropNameID(
14   jsi::Runtime &runtime,
15   const std::string &name
16 ) {
17   auto propName = propNameIDRegistry.find(name);
18 
19   if (propName == propNameIDRegistry.end()) {
20     auto propNameID = std::make_unique<jsi::PropNameID>(jsi::PropNameID::forAscii(runtime, name));
21     auto [result, _] = propNameIDRegistry.emplace(name, std::move(propNameID));
22     return *result->second;
23   }
24   return *propName->second;
25 }
26 } // namespace expo
27 

served by {OpenGrok

Last Index Update: Tue Oct 21 18:42:31 GMT 2025