1 #include "WeakRuntimeHolder.h"
2 #include "JavaScriptRuntime.h"
3 #include "JSIInteropModuleRegistry.h"
4 
5 namespace expo {
WeakRuntimeHolder(std::weak_ptr<JavaScriptRuntime> runtime)6 WeakRuntimeHolder::WeakRuntimeHolder(std::weak_ptr<JavaScriptRuntime> runtime)
7   : std::weak_ptr<JavaScriptRuntime>(std::move(runtime)) {}
8 
getJSRuntime()9 jsi::Runtime &WeakRuntimeHolder::getJSRuntime() {
10   auto runtime = lock();
11   assert((runtime != nullptr) && "JS Runtime was used after deallocation");
12   return runtime->get();
13 }
14 
ensureRuntimeIsValid()15 void WeakRuntimeHolder::ensureRuntimeIsValid() {
16   assert((!expired()) && "JS Runtime was used after deallocation");
17 }
18 
getModuleRegistry()19 JSIInteropModuleRegistry *WeakRuntimeHolder::getModuleRegistry() {
20   auto runtime = lock();
21   assert((runtime != nullptr) && "JS Runtime was used after deallocation");
22   return runtime->getModuleRegistry();
23 }
24 } // namespace expo
25