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