Saadaval on uus JavaScript'i mootori elk 2.0.9 versioon, mis on suunatud piiratud ressurssidega sĂŒsteemide, nagu mikrocontroller'id, kasutamiseks, sealhulgas ESP32 ja Arduino Nano plaadid, millel on 2 KB RAM ja 30 KB Flash. Tootmise virtuaalmasina jaoks piisab 100 baitist mĂ€lu ja 20 KB salvestusruumist. Projekti kood on kirjutatud C keeles ja jagatakse GPLv2 litsentsi alusel. Projekti koostamiseks piisab C kompilaatorist â tĂ€iendavaid sĂ”ltuvusi ei kasutata. Projekti arendavad IoT-seadmete operatsioonisĂŒsteemi Mongoose OS, JavaScript'i mootori mJS ja sisse ehitatud veebiserver Mongoose (kasutatakse ettevĂ”tete nagu Siemens, Schneider Electric, Broadcom, Bosch, Google, Samsung ja Qualcomm toodetes).
Elki peamine eesmĂ€rk on luua mikrocontroller'itele JavaScript'i keeles töötavad Ă”ppematerjalid, mis tĂ€idavad erinevaid automatiseerimisĂŒlesandeid. Mootor sobib ka JavaScript'i töötlusfunktsioonide sisemiselt ehitamiseks C/C++ rakendustes. Mootori kasutamiseks oma koodis piisab, kui lisada lĂ€htekoodide puusse fail elk.c, ĂŒhendada pĂ€isefail elk.h ja kasutada js_eval'i vĂ€ljakutset. Lubatud on funktsioonide vĂ€ljakutsumine JavaScript'i skriptidest, mis on mÀÀratud C/C++ koodis, ja vastupidiselt. JavaScript'i kood tĂ€idetakse kaitstud ja pĂ”hikoodist isoleeritud keskkonnas, kasutades tĂ”lgendajat, mis ei genereeri byte-koodi ja ei kasuta dĂŒnaamilist mĂ€lu eraldamist.
Elkis on rakendatud vĂ€ike, kuid piisav töötavate stsenaariumide loomiseks alamhulk Ecmascript 6 spetsifikatsioonist. EelkĂ”ige toetatakse pĂ”hikomplekti operaatoritest ja tĂŒĂŒpidest, kuid massiivide, prototĂŒĂŒpide, this, new ja delete vĂ€ljendite toetust ei ole. Var'i ja const'i asemel soovitatakse kasutada let'i, ning do, switch ja for'i asemel while'i. Standardset raamatukogu ei ole, st selliseid objekte nagu Date, Regexp, Function, String ja Number ei ole.
Allikas: opennet.ru
