5 poin oleh GN⁺ 2025-11-17 | Belum ada komentar. | Bagikan ke WhatsApp
  • 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

  • Dapat di-build dan dijalankan dengan perintah Cargo standar
    • cargo build membuat berkas eksekusi bs
    • cargo run menjalankan langsung dari source
  • Contoh menjalankan berkas JavaScript:
    cargo build
    ./target/debug/bs ./hello.js
    Hello world!
    

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.

Belum ada komentar.