This specification defines asm.js, a strict subset of Java Script that can be used as a low-level, efficient target language for compilers.
This sublanguage effectively describes a sandboxed virtual machine for memory-unsafe languages like C or C .
However, this representation creates an overlap between signed and unsigned numbers that causes an ambiguity in determining which Java Script number they represent.
For example, the bit pattern )—that is, the range of integers such that an unboxed 32-bit representation has the same value whether it is interpreted as signed or unsigned.
Mozilla's Spider Monkey Java Script engine provides an optimizing implementation of this draft.
, a strict subset of Java Script that can be used as a low-level, efficient target language for compilers.
If either dynamic or static validation fails, the implementation must fall back to the interpreter.
But if both validations succeed, calling the module exports executes the binary executable code generated by AOT compilation.
This specification is working towards a candidate draft for version 1.An AOT implementation must perform certain dynamic checks to check compile-time assumptions about the linked libraries in order to make use of the compiled code.