AFAIK these 3D-engines was specially prepared to be ported to JS. We have abit another specific than just moving 3D objects, creating scenes and blend textures.
Sure, its very similar, but our "textures" is bigger and we should know about more than one pixel per time to do correct demosaic process. Its not the same to create cool WebGL 3D effect and do JPG decompression for example.
Come-rad is right — emscriptened code is not very maintainable, so we cant rely on it.
More than that we use alot of JS-specific performance optimisations that allows us to run faster than any of those autogenerated libs.
We also played with dcraw running on asm.js.
It actually a blackbox with no control. Our current implementation is more fast because uses platform specific optimisations code. I personally spend alot of time optimising it for running in JavaScript.
Before start, we investigated and learned tons of theory and alot of libs.
Rawspeed is my personal best and we compared our results with it.
Now in raw.pics.io we implement simple bicubic interpolation algorithm which optimal in speed/quality. Sure, we think about AHD, gradient and other algos, but we should deal with performance first.
http://raw.pics.io http://people.mozilla.org/~vladimir/demos/webraw/ http://dev.tag.is/rawson.js/rawson.html