1. A computer-implemented method for executing a native code module, comprising: obtaining the native code module; loading the native code module into a secure runtime environment; and safely executing the native code module in the secure runtime environment using a set of software fault isolation (SFI) mechanisms by: maintaining control flow integrity for the native code module; and constraining store instructions in the native code module by bounding a valid memory region of the native code module with one or more guard regions.