Regarding Emscripten - it's a decent idea, but for now it's an odd fit - compiling LLVM into a bytecode and then executing that in JavaScript (assisted on some browsers; Firefox is much faster when running the code I've worked with). It mostly works, but there are a lot of pain points - mostly regarding getting data in and out of it. I didn't find the GC to be too much of a problem, since the "memory" is basically a big array it isn't collected. Rather, I had problems with performance being very inconsistent between browsers, and the mechanism for invoking (and passing data in/out) took a lot more head scratching than I'd like. Admittedly, it was a year ago - but I couldn't help but think that for now I was better off using JavaScript+Canvas (or GL) for a lot of things.
The project we worked on has a public demo here:
http://wisptools.net/tools-viewshed.php?r=20&th=20&lat=38.9589451&lon=-92.32251199999996 (you may have to refresh if the map doesn't come up; it's under *really* heavy load right now). We tried and tried, and couldn't get the performance we wanted in native JS - but the math performance of porting our C++ to Emscripten saved the day. It's a pretty heavy-weight application (and that tool just touches the surface) - for any point on the globe, it downloads terrain height (at a 2 degree resolution in most areas) and landcover data (from LandSat) and ray-casts (taking into account curvature of the Earth) to determine what points are visible. The main application also does ITM/Longley-Rice calculations to determine radio signal strength at the receiver, but that requires that you sign-up on the main RFPlanner app. Depending upon your tower parameters, that can be a *lot* of data to crunch. Unfortunately, it took quite a bit of massaging our otherwise portable code to get it running. Admittedly, this was over a year ago - so the tooling may have improved.
What I'm hoping for webasm is that, once it is supported natively in all major browsers (it's getting there), it will take a lot less fiddling around to get it to execute. If their plans to support threads materialize, then it could be a HUGE win for me. Unfortunately, until native support arrives it isn't something I can deploy - so I can't spend too much time on it. If the ideas for webasm that are slated to arrive later materialize (proper DOM interaction, and a better bridge between JS and WASM) then it could become hugely useful. I would *love* to be freed from JS for web application development; we're just not there yet.
I also didn't try and support it for RLTK because the library uses SFML, and last I checked they haven't shown much interest in Emscripten as a platform.