Un desarrollador ha creado "Ant", un pequeño motor JavaScript de tan solo 2MB, en un plazo de un mes. El proyecto, iniciado a principios de noviembre, buscaba desarrollar un motor JavaScript lo suficientemente ligero para ser integrado en programas C, evitando la necesidad de dependencias masivas como V8 o Node.js. El desarrollo, que comenzó con operaciones numéricas básicas y un sistema de módulos CommonJS rudimentario, se enfrentó a desafíos significativos, especialmente en el parsing del lenguaje, debido a sus complejas particularidades y casos límite, como la inserción automática de punto y coma y el hoisting de variables. Una característica innovadora es el uso de 'NaN boxing', una técnica que aprovecha los valores NaN no utilizados en la especificación IEEE 754 para codificar referencias a objetos y tipos en un solo entero de 64 bits. La implementación de la gestión de memoria fue un punto crítico, inicialmente con un sistema de recolección de basura manual que resultó problemático, hasta que se adoptó bdwgc, un recolector de basura de grado producción. La implementación de async/await también presentó retos considerables, resueltos con la integración de minicoro para el soporte de corrutinas. El resultado es un motor JavaScript minimalista pero funcional, capaz de ejecutar código real y con un enfoque en la eficiencia y el tamaño reducido.
