Потерянные exception
Интересная особенность Emscripten, при запуске игрового цикла через emscripten_set_main_loop, следует помнить о том что хэндлинг исключений должен быть заново добавлен через try catch прямо в методе цикла, т.к. рантайм теряет блок try catch извне.
Проще всего выводить текст ошибки силами браузера, используя javascript alert:
catch (const std::exception &exc)
{
const char *errorText = exc.what();
cout << "Exception: " << errorText << "; Stop execution" << endl;
EM_ASM_(
{
var errorText = UTF8ToString($0);
alert(errorText);
}, errorText);
abort();
Слишком сложный regexp
Релизация regex в std может кинуть исключение error_complexity, если посчитает регулярное выражение слишком сложным. Такое происходит в текущей реализации emscripten, так что предлагаю вам реализовать тесты для парсинга через регулярки, либо использовать сторонние реализации regex.