@@ -587,10 +587,15 @@ void V8::getModuleFunctionImpl(std::string_view function_name,
587
587
return ;
588
588
}
589
589
const wasm::Func *func = it->second .get ();
590
- if (!equalValTypes (func->type ()->params (), convertArgsTupleToValTypes<std::tuple<Args...>>()) ||
591
- !equalValTypes (func->type ()->results (), convertArgsTupleToValTypes<std::tuple<>>())) {
590
+ auto arg_valtypes = convertArgsTupleToValTypes<std::tuple<Args...>>();
591
+ auto result_valtypes = convertArgsTupleToValTypes<std::tuple<>>();
592
+ if (!equalValTypes (func->type ()->params (), arg_valtypes) ||
593
+ !equalValTypes (func->type ()->results (), result_valtypes)) {
592
594
fail (FailState::UnableToInitializeCode,
593
- std::string (" Bad function signature for: " ) + std::string (function_name));
595
+ " Bad function signature for: " + std::string (function_name) +
596
+ " , want: " + printValTypes (arg_valtypes) + " -> " + printValTypes (result_valtypes) +
597
+ " , but the module exports: " + printValTypes (func->type ()->params ()) + " -> " +
598
+ printValTypes (result_valtypes));
594
599
*function = nullptr ;
595
600
return ;
596
601
}
@@ -614,10 +619,15 @@ void V8::getModuleFunctionImpl(std::string_view function_name,
614
619
return ;
615
620
}
616
621
const wasm::Func *func = it->second .get ();
617
- if (!equalValTypes (func->type ()->params (), convertArgsTupleToValTypes<std::tuple<Args...>>()) ||
618
- !equalValTypes (func->type ()->results (), convertArgsTupleToValTypes<std::tuple<R>>())) {
622
+ auto arg_valtypes = convertArgsTupleToValTypes<std::tuple<Args...>>();
623
+ auto result_valtypes = convertArgsTupleToValTypes<std::tuple<R>>();
624
+ if (!equalValTypes (func->type ()->params (), arg_valtypes) ||
625
+ !equalValTypes (func->type ()->results (), result_valtypes)) {
619
626
fail (FailState::UnableToInitializeCode,
620
- " Bad function signature for: " + std::string (function_name));
627
+ " Bad function signature for: " + std::string (function_name) +
628
+ " , want: " + printValTypes (arg_valtypes) + " -> " + printValTypes (result_valtypes) +
629
+ " , but the module exports: " + printValTypes (func->type ()->params ()) + " -> " +
630
+ printValTypes (result_valtypes));
621
631
*function = nullptr ;
622
632
return ;
623
633
}
0 commit comments