1*023bc8eaSKudo Chien #pragma once 2*023bc8eaSKudo Chien 3*023bc8eaSKudo Chien #include <jsi/jsi.h> 4*023bc8eaSKudo Chien #include <memory> 5*023bc8eaSKudo Chien #include <string> 6*023bc8eaSKudo Chien 7*023bc8eaSKudo Chien using namespace facebook; 8*023bc8eaSKudo Chien 9*023bc8eaSKudo Chien namespace reanimated { 10*023bc8eaSKudo Chien 11*023bc8eaSKudo Chien struct HostFunctionHandler : jsi::HostObject { 12*023bc8eaSKudo Chien std::shared_ptr<jsi::Function> pureFunction; 13*023bc8eaSKudo Chien std::string functionName; 14*023bc8eaSKudo Chien jsi::Runtime *hostRuntime; 15*023bc8eaSKudo Chien jsi::HostObject a; 16*023bc8eaSKudo Chien HostFunctionHandlerHostFunctionHandler17*023bc8eaSKudo Chien HostFunctionHandler(std::shared_ptr<jsi::Function> f, jsi::Runtime &rt) { 18*023bc8eaSKudo Chien pureFunction = f; 19*023bc8eaSKudo Chien functionName = f->getProperty(rt, "name").asString(rt).utf8(rt); 20*023bc8eaSKudo Chien hostRuntime = &rt; 21*023bc8eaSKudo Chien } 22*023bc8eaSKudo Chien getPureFunctionHostFunctionHandler23*023bc8eaSKudo Chien std::shared_ptr<jsi::Function> getPureFunction() { 24*023bc8eaSKudo Chien return pureFunction; 25*023bc8eaSKudo Chien } 26*023bc8eaSKudo Chien }; 27*023bc8eaSKudo Chien 28*023bc8eaSKudo Chien } // namespace reanimated 29