v0.2.1
Fixes HBC98 (React Native 0.75+) decompilation correctness and makes whole bundle decompilation scale to large modern bundles, on top of v0.2.0.
What's new
- HBC98 correctness:
xrefnow resolves string operands on the modern 12 byte header layout, where it previously returned zero results. The single function decompile no longer duplicates the receiver in calls (x.indexOf(x, y)) and now matches the whole program output. TheTypeOfIscheck on v97 and newer is decoded from its type bitmask instead of being misread as a string constant. Staged parameter copies that cross basic blocks are resolved, so an argument is no longer left as a dangling temporary (new URL(tmp)becomesnew URL(arg0)). - Async and generator reconstruction (HBC98): v97 removed the generator opcodes, so
function*and async bodies compile to desugared state machines. Linear async and generator bodies are now lifted back intoyieldandawaitsequences with their resume values, including conditional early exits between suspend points. - Performance: decompiling a full modern bundle of about 130k functions previously did not finish within minutes. It now completes end to end in about 90 seconds. This removes quadratic passes in object literal folding, global copy propagation, and the whole program inline body rendering, and fans the render out across cores.
Everything from v0.2.0 is included: the bytecode write path (patch, inject, assemble, create), the analyst tooling (dump tables, disasm --info, callgraph, and the MCP tools), the built in self update command, and Metro and ESM module reconstruction.
Downloads
Each archive contains the hermes-decomp and hermes-mcp binaries. Verify with shasum -a 256 -c SHA256SUMS.
| File | SHA256 |
|---|---|
| hermes-decomp-v0.2.1-linux-x86_64.tar.gz | f10c879e5b63c5fbff66fb57a3dc4a4a8ca226197fb4aaeec0ac2ce67100acb3 |
| hermes-decomp-v0.2.1-macos-arm64.tar.gz | 35bf62c9e712327f26ad17a63596f934d8ab59da1e3041daaad1006572f2f435 |
| hermes-decomp-v0.2.1-windows-x86_64.zip | 8c8bee6894d8cd36a841ffabaa49722182d8c0c741353f04ddd0c2f0d7725d53 |