11#include " jsr.h"
22
3- napi_status js_create_runtime (napi_runtime *runtime)
4- {
3+ JSR::JSR () = default;
4+
5+ std::unordered_map<napi_env, JSR *> JSR::env_to_jsr_cache;
6+
7+ napi_status js_create_runtime (napi_runtime *runtime) {
58 return qjs_create_runtime (runtime);
69}
7- napi_status js_create_napi_env (napi_env *env, napi_runtime runtime)
8- {
9- return qjs_create_napi_env (env, runtime);
10+
11+ napi_status js_create_napi_env (napi_env *env, napi_runtime runtime) {
12+ napi_status status = qjs_create_napi_env (env, runtime);
13+
14+ JSR::env_to_jsr_cache.insert (std::make_pair (*env, new JSR ()));
15+ return status;
16+ }
17+
18+ napi_status js_lock_env (napi_env env) {
19+ auto itFound = JSR::env_to_jsr_cache.find (env);
20+ if (itFound == JSR::env_to_jsr_cache.end ()) {
21+ return napi_invalid_arg;
22+ }
23+
24+ itFound->second ->lock ();
25+
26+ return napi_ok;
1027}
11- napi_status js_free_napi_env (napi_env env)
12- {
28+
29+ napi_status js_unlock_env (napi_env env) {
30+ auto itFound = JSR::env_to_jsr_cache.find (env);
31+ if (itFound == JSR::env_to_jsr_cache.end ()) {
32+ return napi_invalid_arg;
33+ }
34+
35+ itFound->second ->unlock ();
36+
37+ return napi_ok;
38+ }
39+
40+ napi_status js_free_napi_env (napi_env env) {
41+ auto itFound = JSR::env_to_jsr_cache.find (env);
42+ if (itFound != JSR::env_to_jsr_cache.end ()) {
43+ delete itFound->second ;
44+ JSR::env_to_jsr_cache.erase (env);
45+ }
1346 return qjs_free_napi_env (env);
1447}
15- napi_status js_free_runtime (napi_runtime runtime)
16- {
48+
49+ napi_status js_free_runtime (napi_runtime runtime) {
1750 return qjs_free_runtime (runtime);
1851}
52+
1953napi_status js_execute_script (napi_env env,
2054 napi_value script,
2155 const char *file,
22- napi_value *result)
23- {
56+ napi_value *result) {
2457 return qjs_execute_script (env, script, file, result);
2558}
2659
27- napi_status js_execute_pending_jobs (napi_env env)
28- {
60+ napi_status js_execute_pending_jobs (napi_env env) {
2961 return qjs_execute_pending_jobs (env);
3062}
3163
32- napi_status js_adjust_external_memory (napi_env env, int64_t changeInBytes, int64_t * externalMemory) {
64+ napi_status
65+ js_adjust_external_memory (napi_env env, int64_t changeInBytes, int64_t *externalMemory) {
66+ return napi_ok;
67+ }
68+
69+ napi_status js_cache_script (napi_env env, const char *source, const char *file) {
70+ return napi_ok;
71+ }
72+
73+ napi_status js_run_cached_script (napi_env env, const char *file, napi_value script, void *cache,
74+ napi_value *result) {
3375 return napi_ok;
3476}
0 commit comments