diff --git a/src/v8/v8.cc b/src/v8/v8.cc index e83351a9d..986ce10f1 100644 --- a/src/v8/v8.cc +++ b/src/v8/v8.cc @@ -649,7 +649,8 @@ void V8::registerHostFunctionImpl(std::string_view module_name, std::string_view store_.get(), type.get(), [](void *data, const wasm::Val params[], wasm::Val[]) -> wasm::own { auto func_data = reinterpret_cast(data); - if (func_data->vm_->cmpLogLevel(LogLevel::trace)) { + const bool log = func_data->vm_->cmpLogLevel(LogLevel::trace); + if (log) { func_data->vm_->integration()->trace("[vm->host] " + func_data->name_ + "(" + printValues(params, sizeof...(Args)) + ")"); } @@ -657,7 +658,7 @@ void V8::registerHostFunctionImpl(std::string_view module_name, std::string_view auto args = std::tuple_cat(std::make_tuple(current_context_), args_tuple); auto function = reinterpret_cast(func_data->raw_func_); std::apply(function, args); - if (func_data->vm_->cmpLogLevel(LogLevel::trace)) { + if (log) { func_data->vm_->integration()->trace("[vm<-host] " + func_data->name_ + " return: void"); } return nullptr; @@ -682,7 +683,8 @@ void V8::registerHostFunctionImpl(std::string_view module_name, std::string_view store_.get(), type.get(), [](void *data, const wasm::Val params[], wasm::Val results[]) -> wasm::own { auto func_data = reinterpret_cast(data); - if (func_data->vm_->cmpLogLevel(LogLevel::trace)) { + const bool log = func_data->vm_->cmpLogLevel(LogLevel::trace); + if (log) { func_data->vm_->integration()->trace("[vm->host] " + func_data->name_ + "(" + printValues(params, sizeof...(Args)) + ")"); } @@ -691,7 +693,7 @@ void V8::registerHostFunctionImpl(std::string_view module_name, std::string_view auto function = reinterpret_cast(func_data->raw_func_); R rvalue = std::apply(function, args); results[0] = makeVal(rvalue); - if (func_data->vm_->cmpLogLevel(LogLevel::trace)) { + if (log) { func_data->vm_->integration()->trace("[vm<-host] " + func_data->name_ + " return: " + std::to_string(rvalue)); } @@ -729,17 +731,18 @@ void V8::getModuleFunctionImpl(std::string_view function_name, } *function = [func, function_name, this](ContextBase *context, Args... args) -> void { wasm::Val params[] = {makeVal(args)...}; - SaveRestoreContext saved_context(context); - if (cmpLogLevel(LogLevel::trace)) { + const bool log = cmpLogLevel(LogLevel::trace); + if (log) { integration()->trace("[host->vm] " + std::string(function_name) + "(" + printValues(params, sizeof...(Args)) + ")"); } + SaveRestoreContext saved_context(context); auto trap = func->call(params, nullptr); if (trap) { fail(FailState::RuntimeError, getFailMessage(std::string(function_name), std::move(trap))); return; } - if (cmpLogLevel(LogLevel::trace)) { + if (log) { integration()->trace("[host<-vm] " + std::string(function_name) + " return: void"); } }; @@ -769,18 +772,19 @@ void V8::getModuleFunctionImpl(std::string_view function_name, *function = [func, function_name, this](ContextBase *context, Args... args) -> R { wasm::Val params[] = {makeVal(args)...}; wasm::Val results[1]; - SaveRestoreContext saved_context(context); - if (cmpLogLevel(LogLevel::trace)) { + const bool log = cmpLogLevel(LogLevel::trace); + if (log) { integration()->trace("[host->vm] " + std::string(function_name) + "(" + printValues(params, sizeof...(Args)) + ")"); } + SaveRestoreContext saved_context(context); auto trap = func->call(params, results); if (trap) { fail(FailState::RuntimeError, getFailMessage(std::string(function_name), std::move(trap))); return R{}; } R rvalue = results[0].get::type>(); - if (cmpLogLevel(LogLevel::trace)) { + if (log) { integration()->trace("[host<-vm] " + std::string(function_name) + " return: " + std::to_string(rvalue)); }