Nova - Motor de JavaScript y WebAssembly escrito en Rust
(github.com/trynova)- Nova es un motor de JavaScript caracterizado por un diseño orientado a datos, y adopta una estructura ideada para maximizar el rendimiento y la eficiencia de caché
- Busca al mismo tiempo prevenir vulnerabilidades de memoria y optimizar el rendimiento
- Características principales:
- Todos los datos asignados en el heap de JavaScript se almacenan en vectores por tipo (los números en un vector de números, las cadenas en un vector de cadenas, etc.).
- Las referencias del heap se manejan como índices diferenciados según el tipo, lo que brinda seguridad de memoria y eficiencia en tamaño.
- Los objetos se dividen por tipo y se almacenan en vectores (objetos normales, arreglos,
DataView, etc.). - Los objetos no ordinarios están diseñados para referenciar datos de objetos normales solo cuando es necesario.
- Los objetos se almacenan con una separación agresiva para evitar leer datos que no se usan.
- Aún está en desarrollo. El motor tiene funcionalidades muy limitadas, por lo que solo pasa alrededor del 47% de la suite de pruebas test262
1 comentarios
Opiniones en Hacker News
function X(a) { this.a = a; }yfunction Y(b) { this.b = b; }se consideran clases distintas de objeto{a: 1}y{b: 2}se consideran clases distintas de objeto