Nová verze JavaScriptového enginu elk 2.0.9 je nyní k dispozici, zaměřená na použití v systémech s omezenými zdroji, jako jsou mikrokontroléry, včetně desek ESP32 a Arduino Nano s 2 kB RAM a 30 kB Flash. Pro provoz poskytované virtuální mašiny stačí 100 bajtů paměti a 20 kB místa na disku. Kód projektu je napsán v jazyce C a je distribuován pod licencí GPLv2. Pro sestavení projektu stačí kompilátor C — žádné další závislosti nejsou potřebné. Projekt je vyvíjen týmem operačního systému pro IoT zařízení Mongoose OS, JavaScriptového enginu mJS a vestavěného webového serveru. webového serveru Mongoose (používán v produktech takových firem jako Siemens, Schneider Electric, Broadcom, Bosch, Google, Samsung a Qualcomm).
Hlavním účelem elk je vytváření firmware pro mikrokontroléry v jazyce JavaScript, provádějící různé úkoly automatizace. Engine je také vhodný pro vkládání JavaScriptových handlerů do aplikací v C/C++. Pro použití enginu ve svém kódu stačí umístit do stromu zdrojových textů soubor elk.c, připojit hlavičkový soubor elk.h a použít volání js_eval. Je povoleno volání z JavaScriptových skriptů funkcí definovaných v kódu C/C++ a naopak. JavaScriptový kód se provádí v chráněném a izolovaném prostředí od hlavního kódu s použitím interpretu, který nevytváří bajtkód a nepoužívá dynamickou alokaci paměti.
V Elk je implementována malá, ale dostatečná podmnožina specifikace Ecmascript 6 pro vytváření pracovních scénářů. Zejména je podporována základní množina operátorů a typů, ale není zde podpora pro pole, prototypy, výrazy this, new a delete. Místo var a const se doporučuje používat let, a místo do, switch a for se používá while. Standardní knihovna není poskytnuta, tedy nejsou objekty jako Date, Regexp, Function, String a Number.
Zdroj: opennet.ru
