JSIR: A High-Level IR for JavaScript

nnx 33 points 8 comments April 08, 2026
discourse.llvm.org · View on Hacker News

Discussion Highlights (6 comments)

sheepscreek

This is exciting stuff! My interpretation: If the JSIR project can successfully prove bi-directional source to MLIR transformation, it could lead to a new crop of source to source compilers across different languages (as long as they can be lowered to MLIR and back). Imagine transmorphing Rust to Swift and back. Of course you’d still need to implement or shim any libraries used in the source language. This might help a little bit with C++ to Rust conversions - as more optimizations and analysis would now be possible at the MLIR level. Though I won’t expect unsafe code to magically become safe without some manual intervention.

jcuenod

I came across this project in the last couple of days too. Being able to decompile from Hermes bytecode sounds awesome. Here's the repo: https://github.com/google/jsir (it seems not everything is public). Here's a presentation about it: https://www.youtube.com/watch?v=SY1ft5EXI3I (linked in from the repo)

hajile

I want them to finish the official TC39 binary AST proposal. Nearly twice as fast to parse and a bit smaller than minified code makes it a pretty much universally useful proposal. https://github.com/tc39/proposal-binary-ast

croes

IR = Intermediate Representation https://en.wikipedia.org/wiki/Intermediate_representation

pizlonator

> Industry trend of building high-level language-specific IRs "Trend"? This was always the best practice. It's not a "trend".

jhavera

Interesting timing. We have been working on something that takes the opposite design philosophy. JSIR is designed for high-fidelity round-trips back to source, preserving all information a human author put in. That makes sense when the consumer is a human-facing tool like a deobfuscator or transpiler. We have been exploring what an IR looks like when the author is an AI and the consumer is a compiler, and no human needs to read the output at all. ARIA (aria-ir.org) goes the other direction from JSIR. No source round-trip, no ergonomic abstractions, but first-class intent annotations, declared effects verified at compile time, and compile-time memory safety. The use cases are orthogonal. JSIR is the right tool when you need to understand and transform code humans wrote. ARIA is the right tool when you want the AI to skip the human-readable layer entirely. The JSIR paper on combining Gemini and JSIR for deobfuscation is a good example of where the two worlds might intersect. Curious whether you have thought about what properties an IR should have to make that LLM reasoning more reliable.

Semantic search powered by Rivestack pgvector
3,871 stories · 36,122 chunks indexed