diff --git a/src/v8/v8.cc b/src/v8/v8.cc index a873daff7..e83351a9d 100644 --- a/src/v8/v8.cc +++ b/src/v8/v8.cc @@ -18,12 +18,14 @@ #include #include #include +#include #include #include #include #include #include +#include "v8.h" #include "v8-version.h" #include "wasm-api/wasm.hh" @@ -31,7 +33,14 @@ namespace proxy_wasm { namespace { wasm::Engine *engine() { - static const auto engine = wasm::Engine::make(); + static std::once_flag init; + static wasm::own engine; + + std::call_once(init, []() { + v8::V8::EnableWebAssemblyTrapHandler(true); + engine = wasm::Engine::make(); + }); + return engine.get(); }