mosra/magnum

Emscripten 3.1.21+ crashes EmscriptenApplication: "AsciiToString is not defined"

lacyyy opened this issue · 4 comments

lacyyy commented

I'm trying to get code from the ImGui Emscripten example to work, I'm compiling on Windows.
The app throws an error upon calling Magnum::ImGuiIntegration::Context::updateApplicationCursor(). Commenting out that call prevents that, but the cursor appearance obviously no longer changes.

image

It works flawlessly when compiled on Emscripten 3.1.20 .
Looking at Emscripten's changelogs, version 3.1.21 deprecated a few runtime functions, including AsciiToString.

There is UTF8ToString that can probably be used instead.

This is fixed as of 25ebe43. I'm currently testing with 3.1.44 and finding tons of regressions in Emscripten itself, but this particular feature works now.

Turns out that the UTF8ToString, _malloc etc. isn't guaranteed to be included either. For a lack of easier options I'm going to fix this with an accompanying JS library that directly specifies its runtime dependencies.

A better solution is implemented in c3422cd. This should also survive Emscripten versions 3.1.35+, which make UTF8ToString optional as well.