1. A method comprising: in a computing device, performing operations of: receiving a native code module of instructions, wherein the instructions are expressed using an instruction set architecture associated with the computing device, and wherein the instructions include control flow instructions, the control flow instructions each having a respective target; loading the instructions into a memory of the computing device; and performing static binary analysis on the native code module in a secure runtime environment to validate that the instructions that are loaded into the memory will execute safely within the memory, including: determining that the instructions (i) do not include restricted instructions and (ii) do not access restricted features of the computing device; determining that the instructions are laid out in a region of the memory that includes a plurality of byte boundaries so that for each byte boundary in the plurality of byte boundaries that satisfies an alignment granularity condition within the region of the memory, an instruction is aligned along the byte boundary; and determining that the respective target of each control flow instruction that is loaded into the memory is an instruction that is aligned along one of the byte boundaries in the plurality of byte boundaries that satisfies the alignment granularity condition within the region of the memory.