Emscripten support for portable C/C++ code is fairly comprehensive. Support for the C standard library, C++ standard library, C++ exceptions, etc. is very good, as is SDL2 and other APIs. OpenGL support in Emscripten support is excellent for OpenGL ES 2.0-type code, and acceptable for other types.