Ahli matematik Perancis Fabrice Bellard, yang mengasaskan projek QEMU dan FFmpeg, juga mencipta formula terpantas untuk mengira Pi dan membangunkan format imej , menerbitkan keluaran pertama enjin JavaScript baharu . Enjinnya padat dan direka bentuk untuk penyepaduan ke dalam sistem lain. Kod projek ditulis dalam C dan diedarkan di bawah lesen MIT. Binaan enjin juga tersedia, disusun ke dalam WebAssembly menggunakan Emscripten dan sesuai untuk pelaksanaan dalam pelayar.
Pelaksanaan JavaScript Spesifikasi ES2019, termasuk modul, penjana tak segerak dan proksi. Matematik bukan standard disokong secara pilihan untuk JavaScript, seperti jenis BigInt dan BigFloat, serta . Prestasi QuickJS adalah penting analog yang tersedia, sebagai contoh, dalam ujian
bench-v8 berada di hadapan enjin sebanyak 35%, lebih daripada dua kali ganda tiga kali dan tujuh kali.
Selain perpustakaan untuk membenamkan enjin ke dalam aplikasi, projek ini juga menawarkan penterjemah qjs, yang boleh digunakan untuk menjalankan kod JavaScript daripada baris arahan. Selain itu, pengkompil qjsc tersedia, mampu menghasilkan fail boleh laku output yang sesuai untuk pelaksanaan bersendirian yang tidak memerlukan kebergantungan luaran.
Ciri-ciri utama:
- Padat dan mudah untuk disepadukan ke dalam projek lain. Kod ini termasuk hanya beberapa fail C yang tidak memerlukan kebergantungan luaran untuk pemasangan. Aplikasi tersusun paling mudah mengambil masa kira-kira 190 KB;
- Prestasi yang sangat tinggi dan masa permulaan yang singkat. Melepasi 56 ribu ujian keserasian ECMAScript mengambil masa kira-kira 100 saat apabila dilaksanakan pada teras tunggal PC desktop biasa. Permulaan masa jalan mengambil masa kurang daripada 300 mikrosaat;
- Sokongan hampir penuh untuk spesifikasi ES2019 dan sokongan penuh untuk Lampiran B, yang mentakrifkan komponen untuk keserasian dengan aplikasi web lama;
- Lulus lengkap semua ujian daripada Suite Ujian ECMAScript;
- Sokongan untuk menyusun kod Javascript ke dalam fail boleh laku tanpa kebergantungan luaran;
- Pengumpul sampah berdasarkan pengiraan rujukan tanpa pembersihan kitaran, yang membolehkan kami mencapai tingkah laku yang boleh diramal dan mengurangkan penggunaan ingatan;
- Satu set sambungan untuk pengiraan matematik dalam JavaScript;
- Cangkang untuk melaksanakan kod dalam mod baris arahan, menyokong penonjolan kod kontekstual;
- Pustaka standard padat dengan pembungkus di atas pustaka C.
Projek ini juga sedang membangunkan tiga perpustakaan C yang disertakan dalam QuickJS dan sesuai untuk kegunaan individu:
- libregexp - pelaksanaan pantas ungkapan biasa, serasi sepenuhnya dengan spesifikasi Javascript ES 2019;
- libunicode - perpustakaan padat untuk bekerja dengan Unicode;
- libbf - Pelaksanaan operasi titik terapung ketepatan arbitrari dan fungsi transendental dengan pembundaran tepat.
Sumber: opennet.ru
