Zakladatel QEMU a FFmpeg publikoval JavaScriptový engine Micro QuickJS.

Francouzský matematik Fabrice Bellard, zakladatel projektů QEMU, FFmpeg, BPG, QuickJS, TinyGL a TinyCC, publikoval nový JavaScriptový engine pro vestavěné systémy — Micro QuickJS, schopný kompilovat a vykonávat JavaScriptové programy, přičemž spotřebovává pouze 10 KB RAM. Spolu s knihovnou napsanou v C zabírá engine přibližně 100 KB trvalé paměti. Je možná kompilace JavaScriptu do bajtkódu a samostatné spuštění bajtkódu. Kód projektu je napsán v jazyce C a je distribuován pod licencí MIT.

Engine podporuje podmnožinu jazyka JavaScript blízkou specifikaci ECMAScript 5 (ES2019), ale klade přísnější nároky na kód a nedovoluje používání některých neefektivních nebo chybových konstrukcí JavaScriptu. Například globální proměnné musí být vždy deklarovány pomocí klíčového slova 'var', použití 'with' je zakázáno, pole nemohou obsahovat mezery, není možné inicializovat při deklaraci pomocí 'new Number(1)', přístup k místním proměnným z eval není možný.

Výkon Micro QuickJS je blízký enginu QuickJS, který je vyvíjen Fabrice od roku 2019. V Micro QuickJS je použita část kódu z enginu QuickJS, ale architektura se do značné míry liší a je navržena pro minimální spotřebu paměti. Například v Micro QuickJS je použit sledovací garbage collector, zatímco v QuickJS je používané počítání referencí. Přídavné náklady na garbage collector činí pouze několik bitů na každý alokovaný blok paměti. Pro alokaci paměti je použit vlastní alokátor, který není závislý na knihovní funkci malloc().

Další rozdíly od QuickJS: nevyužívá zásobník; jiné vnitřní zastoupení objektů; ukládání řetězců v kódování UTF-8; generování standardní knihovny během kompilace a její uložení v trvalé paměti při vytváření v RAM pouze několika objektů; parser blízký QuickJS, ale nevyužívající rekurzi; kombinace generace bajtkódu a optimalizace v jednom průchodu (v QuickJS probíhá několik průchodů pro optimalizaci). virtuální strojFrancouzský matematik Fabrice Bellard, zakladatel projektů QEMU, FFmpeg, BPG, QuickJS, TinyGL a TinyCC, publikoval nový JavaScriptový engine pro vestavěné systémy - Micro QuickJS.

Zdroj: opennet.ru

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster