Francuski matematyk Fabrice Bellard, który w swoim czasie założył projekty QEMU i FFmpeg oraz stworzył najszybszą formułę obliczania liczby Pi i opracował format obrazów , opublikował pierwszy wydanie nowego silnika JavaScript . Silnik wyróżnia się kompaktowością i jest przeznaczony do wbudowywania w inne systemy. Kod projektu napisano w języku C i jest rozpowszechniany na licencji MIT. Dostępna jest również kompilacja silnika, skompilowana do WebAssembly za pomocą Emscripten, która nadaje się do uruchamiania w przeglądarkach.
Implementacja JavaScript specyfikację ES2019, w tym moduły, asynchroniczne generatory i proxy. Opcjonalnie wspierane są niestandardowe rozszerzenia matematyczne przeciążanie operatorów przewyższa bench-v8 przewyższa silnik
XS DukTape JerryScript MuJS Oprócz biblioteki do wbudowywania silnika w aplikacje, projekt oferuje również interpreter qjs, który można wykorzystać do uruchamiania kodu JavaScript z wiersza poleceń. Co więcej, dostępny jest kompilator qjsc, który jest w stanie generować samodzielne pliki wykonywalne, nie wymagające zewnętrznych zależności.
Główne cechy:
Kompaktowość i łatwość wbudowania w inne projekty. Kod składa się jedynie z kilku plików w języku C, które nie wymagają do kompilacji zewnętrznych zależności. Skompilowana najprostsza aplikacja zajmuje około 190 KB;
- Bardzo wysoka wydajność i krótki czas uruchamiania. Przebieg 56 tysięcy testów zgodności z ECMAScript zajmuje około 100 sekund przy wykonywaniu na jednym rdzeniu standardowego komputera PC. Inicjalizacja runtime trwa mniej niż 300 mikrosekund;
- Prawie pełne wsparcie dla specyfikacji ES2019 oraz pełne wsparcie dla aplikacji «B», określającej komponenty dla zgodności ze starszymi aplikacjami webowymi;
- Prawie pełne wsparcie dla specyfikacji ES2019 oraz pełne wsparcie dla aplikacji „B”, określającej komponenty zapewniające zgodność ze starszymi aplikacjami webowymi;
- Wsparcie dla kompilacji kodu w języku JavaScript do plików wykonywalnych bez zewnętrznych zależności;
- Garbage collector oparty na liczeniu odniesień bez cyklicznego wykonywania czyszczenia, co pozwoliło osiągnąć przewidywalne zachowanie i zmniejszenie zużycia pamięci;
- Zbieracz śmieci oparty na liczeniu referencji, który pozwolił osiągnąć przewidywalne zachowanie i zmniejszenie zużycia pamięci;
- Zestaw rozszerzeń do obliczeń matematycznych w języku JavaScript;
- Powłoka do wykonywania kodu w trybie wiersza poleceń, wspierająca kontekstowe podświetlanie kodu;
- Kompaktowa standardowa biblioteka z opakowaniami nad biblioteką C.
Projekt rozwija również trzy towarzyszące biblioteki C, wykorzystywane w QuickJS i nadające się do indywidualnego zastosowania:
- libregexp — szybka implementacja wyrażeń regularnych, w pełni zgodna ze specyfikacją Javascript ES 2019;
- libunicode — kompaktowa biblioteka do obsługi Unicode;
- libbf — implementacja operacji na liczbach zmiennoprzecinkowych o dowolnej precyzji oraz funkcji transcendentnych z dokładnym zaokrąglaniem.
Źródło: opennet.ru
