Skip to content

Releases: ejfkdev/jscd

Release list

jscd v0.1.0

Choose a tag to compare

@github-actions github-actions released this 04 Oct 02:42
v0.1.0
b4fb0a8

jscd v0.1.0 — reverse bytenode-compiled .jsc (V8 code cache) back to JavaScript.
Static parsing: no patched V8, no Node runtime, no subprocesses.

Install

brew install ejfkdev/tap/jscd                                        # macOS / Linux
scoop bucket add ejfkdev https://github.com/ejfkdev/scoop-bucket && scoop install jscd   # Windows
cargo binstall jscd                                                  # anywhere with Rust (cargo-binstall)

Or take a bare binary straight from this release (no archive, no installer — the file is the
executable):

file platform build notes
jscd-v0.1.0-linux-amd64 Linux x86_64 static (musl)
jscd-v0.1.0-linux-arm64 Linux arm64 glibc, cross-built
jscd-v0.1.0-macos-arm64 macOS (Apple Silicon)
jscd-v0.1.0-macos-amd64 macOS (Intel)
jscd-v0.1.0-windows-amd64.exe Windows x86_64
jscd-v0.1.0-windows-arm64.exe Windows arm64

Linux and Windows builds are UPX-compressed (--best --lzma, best effort — a build
whose UPX step fails is still uploaded uncompressed). macOS binaries are not: UPX
does not support Mach-O.

Quick start

chmod +x jscd-v0.1.0-linux-amd64
./jscd-v0.1.0-linux-amd64 app.jsc                 # decompile one file to stdout
./jscd-v0.1.0-linux-amd64 dist/                  # dist/**.jsc -> dist-out/**.js
./jscd-v0.1.0-linux-amd64 help decompile          # per-subcommand help, with examples

Verify it yourself

./jscd-v0.1.0-linux-amd64 info app.jsc                    # header + detected Node/V8 version
./jscd-v0.1.0-linux-amd64 --verify app.jsc -o app.js      # output must pass `node --check`

Supported Node/V8 versions, the fixture list and how the test numbers are produced
(31 Node.js lines × 36 behavior fixtures, whole-script diffs, the sample corpus) are
documented in the README's Verification section.