22#include " js_runtime.h"
33
44using namespace facebook ::jsi;
5- std::unordered_map<napi_env, JSR*> JSR::env_to_jsr_cache;
5+ std::unordered_map<napi_env, JSR *> JSR::env_to_jsr_cache;
66
77typedef struct napi_runtime__ {
8- JSR* hermes;
8+ JSR * hermes;
99} napi_runtime__;
1010
1111JSR::JSR () {
1212 hermes::vm::RuntimeConfig config =
13- hermes::vm::RuntimeConfig::Builder ().withMicrotaskQueue (true ).withES6Class (true ).withES6Promise (true ).withArrayBuffer (true ).withEnableEval (true ).build ();
13+ hermes::vm::RuntimeConfig::Builder ().withMicrotaskQueue (true ).withES6Class (
14+ true ).withES6Promise (true ).withArrayBuffer (true ).withEnableEval (true ).build ();
1415 threadSafeRuntime = facebook::hermes::makeThreadSafeHermesRuntime (config);
1516
16- facebook::jsi::Function abc = facebook::jsi::Function::createFromHostFunction (threadSafeRuntime->getUnsafeRuntime (), facebook::jsi::PropNameID::forAscii (threadSafeRuntime->getUnsafeRuntime (), " directFunction" ), 0 , [](Runtime& rt, const Value& thisVal, const Value* args, size_t count) -> Value {
17- return Value::undefined ();
18- });
17+ facebook::jsi::Function abc = facebook::jsi::Function::createFromHostFunction (
18+ threadSafeRuntime->getUnsafeRuntime (),
19+ facebook::jsi::PropNameID::forAscii (threadSafeRuntime->getUnsafeRuntime (),
20+ " directFunction" ), 0 ,
21+ [](Runtime &rt, const Value &thisVal, const Value *args, size_t count) -> Value {
22+ return Value::undefined ();
23+ });
1924
20- threadSafeRuntime->getUnsafeRuntime ().global ().setProperty (threadSafeRuntime->getUnsafeRuntime (), " directFunction" , abc);
25+ threadSafeRuntime->getUnsafeRuntime ().global ().setProperty (
26+ threadSafeRuntime->getUnsafeRuntime (), " directFunction" , abc);
2127
22- rt = (facebook::hermes::HermesRuntime *)&threadSafeRuntime->getUnsafeRuntime ();
28+ rt = (facebook::hermes::HermesRuntime *) &threadSafeRuntime->getUnsafeRuntime ();
2329}
2430
25- napi_status js_create_runtime (napi_runtime* runtime) {
31+ napi_status js_create_runtime (napi_runtime * runtime) {
2632 if (runtime == nullptr ) return napi_invalid_arg;
2733 *runtime = new napi_runtime__ ();
2834 (*runtime)->hermes = new JSR ();
@@ -49,19 +55,21 @@ napi_status js_unlock_env(napi_env env) {
4955
5056 return napi_ok;
5157}
52- napi_status js_create_napi_env (napi_env* env, napi_runtime runtime) {
58+
59+ napi_status js_create_napi_env (napi_env *env, napi_runtime runtime) {
5360 if (env == nullptr ) return napi_invalid_arg;
54- runtime->hermes ->rt ->createNapiEnv ( env);
61+ runtime->hermes ->rt ->createNapiEnv (env);
5562 JSR::env_to_jsr_cache.insert (std::make_pair (*env, runtime->hermes ));
5663 return napi_ok;
5764}
5865
59- napi_status js_set_runtime_flags (const char * flags) {
66+ napi_status js_set_runtime_flags (const char * flags) {
6067 return napi_ok;
6168}
6269
6370napi_status js_free_napi_env (napi_env env) {
64- return napi_ok;
71+ JSR::env_to_jsr_cache.erase (env);
72+ return napi_ok;
6573}
6674
6775napi_status js_free_runtime (napi_runtime runtime) {
@@ -90,20 +98,23 @@ napi_status js_get_engine_ptr(napi_env env, int64_t *engine_ptr) {
9098 return napi_ok;
9199}
92100
93- napi_status js_adjust_external_memory (napi_env env, int64_t changeInBytes, int64_t * externalMemory) {
101+ napi_status
102+ js_adjust_external_memory (napi_env env, int64_t changeInBytes, int64_t *externalMemory) {
103+ napi_adjust_external_memory (env, changeInBytes, externalMemory);
94104 return napi_ok;
95105}
96106
97107napi_status js_cache_script (napi_env env, const char *source, const char *file) {
98108 return napi_ok;
99109}
100- napi_status js_run_cached_script (napi_env env, const char * file, napi_value script, void * cache, napi_value *result) {
110+
111+ napi_status js_run_cached_script (napi_env env, const char *file, napi_value script, void *cache,
112+ napi_value *result) {
101113 return napi_ok;
102114}
103115
104- napi_status js_get_runtime_version (napi_env env, napi_value* version) {
116+ napi_status js_get_runtime_version (napi_env env, napi_value * version) {
105117 napi_create_string_utf8 (env, " Hermes" , NAPI_AUTO_LENGTH, version);
106-
107118 return napi_ok;
108119}
109120
0 commit comments