1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 10:48:11 +00:00

LibWasm: Execute the start function, if one exists

This commit is contained in:
Ali Mohammad Pur 2021-05-03 22:45:16 +04:30 committed by Andreas Kling
parent d9ed3b504e
commit 3402381d7a

View file

@ -170,9 +170,14 @@ InstantiationResult AbstractMachine::instantiate(const Module& module, Vector<Ex
}
});
module.for_each_section_of_type<StartSection>([&](auto&) {
instantiation_result = InstantiationError { "Start section not yet implemented" };
// FIXME: Invoke the start function.
module.for_each_section_of_type<StartSection>([&](const StartSection& section) {
auto& functions = m_module_instance.functions();
auto index = section.function().index();
if (functions.size() <= index.value()) {
instantiation_result = InstantiationError { String::formatted("Start section function referenced invalid index {} of max {} entries", index.value(), functions.size()) };
return;
}
invoke(functions[index.value()], {});
});
return instantiation_result.value_or({});