/* * Copyright (c) Facebook, Inc. and its affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ #include "RCTJSIExecutorRuntimeInstaller.h" #import namespace facebook { namespace react { JSIExecutor::RuntimeInstaller RCTJSIExecutorRuntimeInstaller(JSIExecutor::RuntimeInstaller runtimeInstallerToWrap) { return [runtimeInstaller = runtimeInstallerToWrap](jsi::Runtime &runtime) { Logger iosLoggingBinder = [](const std::string &message, unsigned int logLevel) { _RCTLogJavaScriptInternal(static_cast(logLevel), [NSString stringWithUTF8String:message.c_str()]); }; bindNativeLogger(runtime, iosLoggingBinder); PerformanceNow iosPerformanceNowBinder = []() { // CACurrentMediaTime() returns the current absolute time, in seconds return CACurrentMediaTime() * 1000; }; bindNativePerformanceNow(runtime, iosPerformanceNowBinder); // Wrap over the original runtimeInstaller if (runtimeInstaller) { runtimeInstaller(runtime); } }; } } // namespace react } // namespace facebook