4 ms·
> It's not. Asm.js is pretty much just assembly. No, it's not. Have you even read http://asmjs.org/spec/latest/ http://asmjs.org/spec/latest/ ? It's a rather
by pifflesnort 14y ago
> It's not. Asm.js is pretty much just assembly.
No, it's not. Have you even read http://asmjs.org/spec/latest/ http://asmjs.org/spec/latest/ ?
It's a rather high-level bytecode, expressed by constraining JavaScript to a specific subset of the language, interpreted according to rules that are considerably more specific than those specified in the JavaScript spec.
- deleted 14y ago[deleted]
- pcwalton 14y agoIt essentially exposes a load-store architecture, exactly as the assembly language of RISC processors does. There are some minor differences, such as the control structures and an infinite register file, but those aren't really relevant to reverse engineering. (IDA has been able to figure out control structures and local variables for a long time now.)
- pifflesnort 14y agoWould you call Java's or Dalvik's bytecode assembly?
- pcwalton 14y agoYes. But note that, even so, there is a large distinction between Java or Dalvik bytecode and asm.js: the memory model of Java and Dalvik bytecode is defined in terms of high-level class types, object instances, and properties, while the memory model of asm.js is a large array, 8 bits wide by X MB long. Naturally, the latter is much lower-level and more difficult to decompile…
- pifflesnort 14y agoIn that case, I think we just have some differing definitions.
- alistair77 14y agoGiven who he is, I imagine pcwalton is far more familiar with it than you are. Either way, you're wrong. Bytecode is not human readable which, as even your definition states, asm.js clearly is.