That's all that asm.js really is: a set of JavaScript coding conventions that (when followed) prove to be easy to optimize to near-native levels of speed, along with a compiler hint to tell the runtime that these conventions are being used. IE6 doesn't understand the compiler hint, but because the asm.js code is still valid JavaScript, it'll still run.
I suspect that either nnethercote and I are using different definitions of backward-compatibility, or nnethercote is mistaken as to what exactly asm.js is. Authorities are less likely to make mistakes, but they can still make them.
None of IE 6, 7, 8 and 9 support them: http://caniuse.com/typedarrays. Ergo, asm.js won't work on IE 6, 7, 8 or 9.
(Speaking of authorities: I got this info from azakai, who's the author of Emscripten and one of the designers of asm.js.)
It can't even be shimmed on IE6, since you can't overload the array indexing operator there.
It's entirely possible and easy to implement an extension/variant of Asm.js that could legitimately target these browsers, by providing shimmable names for the array indexing operation, but diminishing returns and all that..
Note nnethercote (parent comment) is one of Mozilla's engineering ninjas and author of Valgrind, it's pretty likely he knows what he's talking about here.