diff --git a/source/extensions/common/wasm/wavm/wavm.cc b/source/extensions/common/wasm/wavm/wavm.cc index 8f846f8cd4dc..d1caea6e66b5 100644 --- a/source/extensions/common/wasm/wavm/wavm.cc +++ b/source/extensions/common/wasm/wavm/wavm.cc @@ -335,9 +335,16 @@ void Wavm::start(Context* context) { if (f) { CALL_WITH_CONTEXT(invokeFunctionChecked(context_, f, {}), context); } + if (emscriptenInstance_) { Emscripten::initializeGlobals(context_, irModule_, moduleInstance_); } + + f = asFunctionNullable(getInstanceExport(moduleInstance_, "__post_instantiate")); + if (f) { + CALL_WITH_CONTEXT(invokeFunctionChecked(context_, f, {}), context); + } + f = asFunctionNullable(getInstanceExport(moduleInstance_, "main")); if (!f) { f = asFunctionNullable(getInstanceExport(moduleInstance_, "_main"));