Objavljen je nova verzija JavaScript motor elk 2.0.9, koja je namijenjena korištenju u sustavima s ograničenim resursima, poput mikrokontrolera, uključujući ESP32 i Arduino Nano ploče s 2 KB RAM-a i 30 KB Flash-a. Za rad virtualne mašine dovoljna su 100 bajta memorije i 20 KB prostora na disku. Kod projekta napisan je na C jeziku i distribuira se pod GPLv2 licencom. Za izgradnju projekta dovoljan je C kompajler — dodatne ovisnosti nisu potrebne. Projekt razvijaju programeri operativnog sustava za IoT uređaje Mongoose OS, JavaScript motor mJS i embedded. web-poslužitelja Mongoose (koristi se u proizvodima tvrtki kao što su Siemens, Schneider Electric, Broadcom, Bosch, Google, Samsung i Qualcomm).
Glavna svrha Elka je stvaranje firmware-a za mikrokontrolere na JavaScript jeziku, koji obavljaju razne automatizacijske zadatke. Motor je također prikladan za ugradnju JavaScript obrada u aplikacije na C/C++. Za korištenje motora u svom kodu dovoljno je dodati u stablo izvornog koda datoteku elk.c, uključiti zaglavlje elk.h i koristiti poziv js_eval. Dopunjeno je pozivanje funkcija definiranih u C/C++ kodu iz JavaScript skripti i obrnuto. JavaScript kod se izvršava u zaštićenom i izoliranom okruženju od glavnog koda uz pomoć interpreter koji ne generira bytecode i ne koristi dinamičko alociranje memorije.
U Elku je implementirana mala, ali dovoljna za stvaranje radnih scenarija, podskup specifikacije Ecmascript 6. Konkretno, podržava osnovni set operatera i tipova, ali nema podrške za nizove, prototipove, izraze this, new i delete. Umjesto var i const preporučuje se korištenje let, a umjesto do, switch i for — while. Ne postoji standardna biblioteka, tj. nema takvih objekata kao što su Date, Regexp, Function, String i Number.
Izvor: opennet.ru
