They compiled C/C++-code using Clang (or possible gcc w/dragonegg, but my guess is Clang 3.2 as that's the supported compiler for emscripten) to LLVM bytecode and then to JS/HTML5 using emscripten, which is aware of asm.js and optimizes for it.
Mozilla (which Kripken is also highly involved with) are behind asm.js and is supported in the latest nightly of firefox (supposedly giving speeds to within 2x of native code, which is damn impressive), and the guy behind emscripten (again, Kripken) works for Mozilla.
I'm don't know to what extend emscripten is part of Mozilla or his own personal project.
---- Slides by Kripken on emscripten (http://kripken.github.io/mloc_emscripten_talk)
Download them with: 1) curl "http://cdn.unrealengine.com/html5-4c0913f/UDKGame-Browser-Sh... -H "Referer: http://www.unrealengine.com/html5/ > UDKGame-Browser-Shipping.js
2) curl "http://cdn.unrealengine.com/html5-4c0913f/UDKGame_Data.js -H "Referer: http://www.unrealengine.com/html5/ > UDKGame_Data.js
And all you get is 5.4M / 4K of unreadable bytecode.
It's just gzipped. ungzip the files (turns 5 MB into 50 MB) and you can read them as plain text javascript.
curl --compressed "http://cdn.unrealengine.com/html5-4c0913f/UDKGame_Data.js" -H "Referer: http://www.unrealengine.com/html5/" -O // EMSCRIPTEN_START_ASM
it becomes if((d|0)!=36620|(d|0)!=0&(c[b+4>>2]|0)!=0)
{c[1779323]=6}b=c[1312365]|0;d=7084512;
c[d>>2]=c[1312364]|0;c[d+4>>2]=b;b=7084520;
d=c[b>>2]|0;if((d|0)!=36620|(d|0)!=0&(c[b+4>>2]|0)!=0)
{c[1779323]=7}b=c[1312363]|0;d=7084520;
c[d>>2]=c[1312362]|0;
all on one line for nearly the rest of the file. It might as well be bytecode. Actually many bytecodes are more understandable.asm.js isn't just an evocative name, it's a reasonable description... it's assembly in Javascript.