| Input → output | Method | Features & limits | |
|---|---|---|---|
| JZ | JavaScript → WASM | Ahead-of-time, inferred types | SIMD, no GC; JavaScript subset |
| scriptc | JS/TS → native, WASI | LLVM ahead-of-time | Node API subset; opt-in QuickJS fallback |
| TypeScriptCompiler | TypeScript → native, WASM | LLVM/MLIR ahead-of-time or JIT | Default library, GC; typed subset |
| Porffor | JavaScript → C → native | Ahead-of-time | Compiled JS engine; experimental |
| AssemblyScript | TypeScript-like → WASM | Ahead-of-time, explicit types | Managed memory; existing JS needs porting |
| Javy | JavaScript → WASI | Embedded QuickJS | Broad JS support; engine bundled or shared |
| ComponentizeJS | JS + WIT → WASM component | SpiderMonkey, optional AOT | Component interfaces, Web APIs; embedded engine |
| Perry | TypeScript → native, WASM | LLVM ahead-of-time | Native UI; linked runtime and GC |
| Tov | TypeScript-like → C → native | Ahead-of-time, explicit types | Value semantics, checked overflow; existing JS needs porting |
| Emscripten | C/C++ → WASM | LLVM ahead-of-time | C/C++ libraries, browser bindings; rewrite JS |
Corpus
Cases
Slower than your JS?
Report a slow case