52 lines
1.5 KiB
C++
52 lines
1.5 KiB
C++
/*
|
|
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
*
|
|
* This source code is licensed under the MIT license found in the
|
|
* LICENSE file in the root directory of this source tree.
|
|
*/
|
|
|
|
#include "JsiIntegrationTestHermesEngineAdapter.h"
|
|
|
|
namespace facebook::react::jsinspector_modern {
|
|
|
|
JsiIntegrationTestHermesEngineAdapter::JsiIntegrationTestHermesEngineAdapter(
|
|
folly::Executor& jsExecutor)
|
|
: runtime_{hermes::makeHermesRuntime(
|
|
::hermes::vm::RuntimeConfig::Builder()
|
|
.withCompilationMode(
|
|
::hermes::vm::CompilationMode::ForceLazyCompilation)
|
|
.build())},
|
|
jsExecutor_{jsExecutor},
|
|
runtimeTargetDelegate_{runtime_} {}
|
|
|
|
/* static */ InspectorFlagOverrides
|
|
JsiIntegrationTestHermesEngineAdapter::getInspectorFlagOverrides() noexcept {
|
|
return {};
|
|
}
|
|
|
|
RuntimeTargetDelegate&
|
|
JsiIntegrationTestHermesEngineAdapter::getRuntimeTargetDelegate() {
|
|
return runtimeTargetDelegate_;
|
|
}
|
|
|
|
jsi::Runtime& JsiIntegrationTestHermesEngineAdapter::getRuntime()
|
|
const noexcept {
|
|
return *runtime_;
|
|
}
|
|
|
|
RuntimeExecutor JsiIntegrationTestHermesEngineAdapter::getRuntimeExecutor()
|
|
const noexcept {
|
|
auto& jsExecutor = jsExecutor_;
|
|
return [runtimeWeak = std::weak_ptr(runtime_), &jsExecutor](auto fn) {
|
|
jsExecutor.add([runtimeWeak, fn]() {
|
|
auto runtime = runtimeWeak.lock();
|
|
if (!runtime) {
|
|
return;
|
|
}
|
|
fn(*runtime);
|
|
});
|
|
};
|
|
}
|
|
|
|
} // namespace facebook::react::jsinspector_modern
|