- Mesin JavaScript yang diimplementasikan dari nol dengan Rust, dengan arsitektur yang mendukung spesifikasi ECMAScript hampir sepenuhnya
- Saat ini telah lolos lebih dari 97% bahasa ECMAScript, dan telah diverifikasi dengan pengujian berbasis test262
- Terinspirasi oleh desain Ignition milik V8 dan LibJS dari SerenityOS, dengan sebagian besar komponen diimplementasikan sendiri dengan pendekatan meminimalkan dependensi
- Menyertakan VM bytecode, garbage collector kompak, mesin RegExp kustom, dan parser, serta menyediakan objek dan fungsi bawaan yang sesuai spesifikasi
- Meski belum selesai untuk penggunaan produksi, ini merupakan kemajuan penting dalam pengembangan mesin JS berbasis Rust dengan kemampuan setingkat ES2025
Ikhtisar Brimstone
- Brimstone adalah mesin JavaScript yang sepenuhnya baru ditulis dengan Rust, dengan tujuan mengimplementasikan spesifikasi ECMAScript secara setia
- Saat ini mendukung lebih dari 97% bahasa ECMAScript dan lolos pengujian test262
- Ini masih merupakan proyek yang sedang dikembangkan dan belum siap digunakan di lingkungan produksi
Desain dan implementasi
- Mengimplementasikan spesifikasi ECMAScript secara langsung, dengan inspirasi desain dari V8 dan LibJS milik SerenityOS
- Sebagian besar komponen mesin diimplementasikan sendiri tanpa dependensi, dengan ICU4X sebagai satu-satunya pengecualian
- Komponen utama:
- VM berbasis bytecode yang merujuk pada V8 Ignition
- Garbage collector kompak yang ditulis dengan kode Rust yang sangat unsafe
- Mesin RegExp kustom dan parser
- Implementasi objek dan fungsi bawaan yang sesuai spesifikasi
Build dan menjalankan
Sistem pengujian
- Memanfaatkan rangkaian pengujian integrasi pihak pertama dan pihak ketiga, termasuk test262 resmi
- Menyertakan runner pengujian integrasi kustom (dijalankan dengan perintah
cargo brimstone-test)
- Pengujian unit dan snapshot dijalankan dengan
cargo test
- Informasi pengujian tambahan tersedia di
tests/README.md
Fitur yang belum diimplementasikan
- Sudah mengimplementasikan semua fitur hingga ES2024 dan sebagian besar proposal Stage 4 berdasarkan rapat TC39 Februari 2025
- Fitur yang masih belum didukung:
- SharedArrayBuffer
- Atomics
Belum ada komentar.