El Ecosistema Startup > Blog > Actualidad Startup > JSIR: el IR de JavaScript open source de Google

JSIR: el IR de JavaScript open source de Google

¿Qué es JSIR y por qué importa ahora?

En abril de 2026, ingenieros de Google publicaron un RFC en el foro de LLVM Discourse proponiendo JSIR como un estándar abierto de representación intermedia (IR) de alto nivel para JavaScript. Aunque el proyecto lleva tiempo madurando internamente —fue presentado en el LLVM Dev Meeting de octubre de 2024— su apertura formal a la comunidad como proyecto open source en github.com/google/jsir marca un antes y un después para quienes trabajan en análisis, transformación y seguridad de código JavaScript.

Para cualquier founder o equipo técnico que construye herramientas de automatización, seguridad, análisis estático o compiladores sobre JavaScript, JSIR representa una pieza de infraestructura que valía la pena tener en el radar desde ayer.

El problema que JSIR viene a resolver

Trabajar con código JavaScript a escala —especialmente código adversarial u ofuscado— ha sido históricamente frustrante. Las herramientas disponibles obligan a elegir entre dos mundos imperfectos:

👥 ¿Quieres ir más allá de la noticia?

En nuestra comunidad discutimos las tendencias, compartimos oportunidades y nos ayudamos entre emprendedores. Sin humo, solo acción.

👥 Unirme a la comunidad
  • ASTs de alto nivel (como el AST de Babel o ESTree): excelentes para traversal sintáctico, pero sin soporte nativo de CFG ni SSA, lo que los hace inadecuados para análisis de flujo de datos sofisticados como taint analysis o propagación de constantes.
  • IRs de bajo nivel (como los internos de V8 o Hermes): potentes para análisis profundo, pero propietarios, inestables y sin posibilidad de reconstruir código fuente legible.

JSIR resuelve esta tensión con un diseño híbrido: es lo suficientemente alto nivel para mapear de vuelta al AST y generar código fuente, y lo suficientemente bajo nivel para soportar análisis de flujo de datos y control. En producción, Google ya lo usa para la detección de JavaScript adversarial en páginas web, extensiones y aplicaciones móviles.

Arquitectura: JSHIR y JSLIR sobre MLIR

JSIR no es un IR monolítico sino una pila de dos dialectos construidos sobre la infraestructura de MLIR (Multi-Level Intermediate Representation), el mismo framework que impulsa compiladores modernos para ML y sistemas embebidos:

JSHIR — High-Level IR

JSHIR es el dialecto de alto nivel. Usa regiones de MLIR para modelar con precisión las estructuras de control de JavaScript: bucles, condicionales, bloques de excepción. Cada operación de «statement» actúa como raíz de traversal recursivo, lo que permite un mapeo bidireccional perfecto entre JSHIR y el AST original. Esto habilita transformaciones source-to-source sin pérdida de información semántica.

JSLIR — Low-Level IR

JSLIR es el dialecto de bajo nivel. Introduce un CFG (grafo de flujo de control) explícito y representación SSA (Static Single Assignment), habilitando análisis como taint analysis, propagación de constantes y extracción de señales para clasificadores de machine learning. Lo clave: JSLIR anota los saltos de control con información del nivel alto, lo que permite lifting completo de vuelta a JSHIR. Es un viaje de ida y vuelta verdadero.

Esta arquitectura de dos niveles, respaldada por MLIR, pone a JSIR en una categoría distinta a cualquier herramienta existente de análisis JavaScript.

Casos de uso concretos para equipos técnicos

Google ya usa JSIR en producción para varios escenarios de análisis adversarial. Pero los casos de uso van mucho más allá de la seguridad interna:

1. Desofuscación de código JavaScript

El código JavaScript ofuscado es una pesadilla para equipos de seguridad y reverse engineering. JSIR permite aplicar passes de transformación —incluyendo combinaciones con LLMs como Gemini— para simplificar código ofuscado y devolverlo a una forma legible. Esto es particularmente valioso para startups de ciberseguridad o equipos de compliance que analizan código de terceros.

2. Transformaciones source-to-source

Con JSHIR como base, es posible construir pipelines que transformen código JavaScript manteniendo semántica: refactorizaciones automáticas, migraciones de APIs, instrumentación de código para telemetría. El mapeo bidireccional garantiza que el código resultante sea válido y preserva los comentarios y estructura original cuando se desea.

3. Descompilación de bytecode Hermes a JavaScript

Una aplicación especialmente práctica: descompilar bytecode de Hermes (el runtime JS de Meta/React Native) de vuelta a código fuente JavaScript legible. Esto abre posibilidades para auditoría de aplicaciones móviles y análisis forense en entornos donde solo se tiene acceso al bundle compilado.

4. Taint analysis y extracción de señales

Con JSLIR y su soporte SSA, es posible rastrear flujos de datos sospechosos a través del código: ¿de dónde viene un valor que se envía a una red externa? ¿Qué variables están contaminadas por inputs no confiables? Este tipo de análisis alimenta directamente clasificadores de ML y motores de reglas para sistemas de seguridad automatizados.

¿En qué se diferencia JSIR de las herramientas actuales?

La comparación honesta con las herramientas más usadas hoy revela por qué JSIR llena un espacio real:

  • Babel AST / ESTree: Ideales para transformaciones sintácticas simples, pero no tienen CFG ni SSA. Un taint analysis serio sobre Babel AST requiere reimplementar demasiada infraestructura de análisis de flujo.
  • Hermes IR: Orientado al runtime de React Native. JSIR puede consumir bytecode Hermes y reconstruir fuente JavaScript, agregando una capa de análisis que Hermes por sí solo no ofrece.
  • IRs internos de V8 (Ignition, Turbofan): Potentes pero completamente propietarios, no estables para uso externo, y sin mecanismo de lifting a código fuente. Están optimizados para ejecución, no para análisis o transformación.

JSIR es el primer IR de JavaScript que es al mismo tiempo público, estable, bidireccional y con soporte completo de CFG/SSA, todo dentro del ecosistema MLIR.

Impacto potencial en la comunidad MLIR y LLVM

El RFC en LLVM Discourse no es solo una propuesta técnica: es una invitación a estandarizar la infraestructura de análisis JavaScript. Si la comunidad adopta JSIR como dialecto oficial de MLIR para JavaScript, el efecto multiplicador sería enorme:

  • Equipos de investigación en universidades y empresas podrían construir sobre una base común en lugar de reinventar IRs propietarios.
  • La madurez del ecosistema MLIR —con sus herramientas de debugging, transformación, y generación de código— quedaría disponible para el lenguaje más ejecutado del mundo.
  • Se abre la puerta a dialectos similares para otros lenguajes dinámicos como Python o Ruby, siguiendo el mismo patrón MLIR.

En el LLVM Dev Meeting de 2024, la recepción técnica fue positiva. Las discusiones se enfocaron en detalles de diseño —como el manejo de break y continue mediante regiones— más que en objeciones fundamentales al enfoque. Eso es una buena señal de tracción en una comunidad históricamente exigente.

Relevancia para founders y equipos de automatización

Si estás construyendo en el espacio de herramientas para developers, seguridad de aplicaciones, análisis de código o automatización de pipelines, JSIR es relevante de formas muy concretas:

  • Startups de dev tools: Una base IR estable y abierta reduce drásticamente el tiempo para construir linters, refactoring tools o code intelligence avanzado sobre JavaScript.
  • Equipos de seguridad: El soporte nativo de taint analysis y desofuscación en un IR público elimina la necesidad de construir infraestructura propia.
  • Plataformas no-code/low-code: Las transformaciones source-to-source de JSIR pueden alimentar generadores de código que producen JavaScript válido desde representaciones abstractas.
  • Herramientas de AI + código: La integración demostrada con LLMs como Gemini para desofuscación sugiere un camino claro para combinar JSIR con agentes de código de próxima generación.

Conclusión

JSIR no es solo otro proyecto académico de compiladores. Es infraestructura open source respaldada por Google, probada en producción para uno de los problemas más difíciles del análisis de código —JavaScript adversarial— y diseñada desde el día uno para ser reutilizable por la comunidad. Su integración con MLIR le da acceso a un ecosistema de herramientas maduro y en crecimiento. Para founders y equipos técnicos que trabajan en automatización, seguridad o herramientas para developers sobre JavaScript, vale la pena explorar el repositorio hoy y seguir de cerca la evolución del RFC en LLVM Discourse. Las abstracciones que se estandaricen en los próximos meses pueden definir cómo se analiza y transforma JavaScript a escala durante la próxima década.

Descubre cómo otros founders implementan estas soluciones de análisis y automatización de código en sus stacks. Únete gratis a la comunidad de Ecosistema Startup.

Unirse gratis

Fuentes

  1. https://discourse.llvm.org/t/rfc-jsir-a-high-level-ir-for-javascript/90456 (fuente original)
  2. https://github.com/google/jsir (repositorio oficial open source)
  3. https://app.daily.dev/posts/google-proposes-jsir-as-a-high-level-ir-for-javascript-emhlrdtev (cobertura técnica)
  4. https://llvm.org/devmtg/2024-10/slides/techtalk/Tan-JSIR.pdf (slides LLVM Dev Meeting 2024)
  5. https://www.youtube.com/watch?v=SY1ft5EXI3I (talk en LLVM Dev Meeting 2024)
  6. http://too4words.github.io/jsir/ (documentación JSIR)
¿te gustó o sirvió lo que leíste?, Por favor, comparte.

👥 ¿Quieres ir más allá de la noticia?

En nuestra comunidad discutimos las tendencias, compartimos oportunidades y nos ayudamos entre emprendedores. Sin humo, solo acción.

👥 Unirme a la comunidad

Daily Shot: Tu ventaja táctica

Lo que pasó en las últimas 24 horas, resumido para que tú no tengas que filtrarlo.

Suscríbete para recibir cada mañana la curaduría definitiva del ecosistema startup e inversionista. Sin ruido ni rodeos, solo la información estratégica que necesitas para avanzar:

  • Venture Capital & Inversiones: Rondas, fondos y movimientos de capital.
  • IA & Tecnología: Tendencias, Web3 y herramientas de automatización.
  • Modelos de Negocio: Actualidad en SaaS, Fintech y Cripto.
  • Propósito: Erradicar el estancamiento informativo dándote claridad desde tu primer café.

📡 El Daily Shot Startupero

Noticias del ecosistema startup en 2 minutos. Gratis, cada día hábil.


Share to...