diff --git a/src/js_native_api_v8.cpp b/src/js_native_api_v8.cpp index db32e3604dfc9ed20cc881c2b4d2417e637c0533..436ba47eed9336082a6fe2d02a30624e18db6e67 100644 --- a/src/js_native_api_v8.cpp +++ b/src/js_native_api_v8.cpp @@ -1236,14 +1236,14 @@ JSVM_Status OH_JSVM_OpenEnvScope(JSVM_Env env, JSVM_EnvScope* result) { auto *v8scope = env->scopeMemoryManager.New(env->context()); *result = reinterpret_cast(v8scope); - return JSVM_OK; + return ClearLastError(env); } JSVM_Status OH_JSVM_CloseEnvScope(JSVM_Env env, JSVM_EnvScope scope) { auto v8scope = reinterpret_cast(scope); env->scopeMemoryManager.Delete(v8scope); - return JSVM_OK; + return ClearLastError(env); } JSVM_Status OH_JSVM_CompileScript(JSVM_Env env, @@ -1519,7 +1519,7 @@ JSVM_Status OH_JSVM_CreateCodeCache(JSVM_Env env, JSVM_Script script, const uint *length = cache->length; cache->buffer_policy = v8::ScriptCompiler::CachedData::BufferNotOwned; delete cache; - return JSVM_OK; + return ClearLastError(env); } JSVM_Status OH_JSVM_RunScript(JSVM_Env env, JSVM_Script script, JSVM_Value* result) @@ -1689,6 +1689,7 @@ JSVM_EXTERN JSVM_Status OH_JSVM_OpenInspector(JSVM_Env env, const char* host, ui auto agent = env->GetInspectorAgent(); if (!agent->Start(inspectorPath, hostName, port)) { LOG(Error) << "Open Inspector failed: Please check the internet permisson."; + return SetLastError(env, JSVM_GENERIC_FAILURE); } return GET_RETURN_STATUS(env); @@ -4812,6 +4813,7 @@ JSVM_Status OH_JSVM_OpenInspectorWithName(JSVM_Env env, int pid, const char* nam if (!env->GetInspectorAgent()->Start(path, pid)) { LOG(Error) << "Open Inspector failed: Please check the internet permisson."; + return SetLastError(env, JSVM_GENERIC_FAILURE); } return GET_RETURN_STATUS(env); } diff --git a/src/jsvm_reference.cpp b/src/jsvm_reference.cpp index 19d3160c41e3c55a7a72e1248d82cdd78a7b6a46..029737c22d94e5d853072dcf33a682d0abe7ec0d 100644 --- a/src/jsvm_reference.cpp +++ b/src/jsvm_reference.cpp @@ -111,7 +111,7 @@ void FinalizerTracker::CallFinalizer() if (!env) { cbTemp(env, dataTemp, hintTemp); } else { - env->CallFinalizer(cbTemp, dataTemp, hintTemp); + env->CallIntoModule([&](JSVM_Env env) { cbTemp(env, dataTemp, hintTemp); }); } }