Seems like from sdk 2.0.9, imported JavaScripts functions need to have `__sig` specified in the js library file. So it looks embind/emval JS libraries still not conforming to this change.
From: ChangeLog.md
2.0.9: 11/16/2020
-----------------
- The ABI used for importing symbol by address in dynamic linking (MAIN_MODULE +
SIDE_MODULE) is now the same as the ABI used by llvm and wasm-ld. That is,
symbol addresses are imported from the 'GOT.mem' and 'GOT.func' pseudo
modules. As one side effect of this change it is now required that JavaScript
functions that are imported by address are now required to have a `__sig`
specified in the library JavaScript file.
From: library_dylib.js
if (typeof result === 'function') {
// Insert the function into the wasm table. If its a direct wasm function
// the second argument will not be needed. If its a JS function we rely
// on the `sig` attribute being set based on the `<func>__sig` specified
// in library JS file.
return addFunctionWasm(result, result.sig);
} else {
return result;
}
},