È disponibile una nuova versione del motore JavaScript elk 2.0.9, progettata per l'uso in sistemi con risorse limitate, come microcontrollori, incluse le schede ESP32 e Arduino Nano con 2 KB di RAM e 30 KB di Flash. Per il funzionamento della macchina virtuale fornita è sufficiente 100 byte di memoria e 20 KB di spazio di archiviazione. Il codice del progetto è scritto in C e distribuito con licenza GPLv2. Per compilare il progetto è sufficiente un compilatore C: non sono utilizzate dipendenze aggiuntive. Il progetto è sviluppato dagli sviluppatori del sistema operativo per dispositivi IoT Mongoose OS, del motore JavaScript mJS e degli embedded. server web Mongoose (utilizzato in prodotti di aziende come Siemens, Schneider Electric, Broadcom, Bosch, Google, Samsung e Qualcomm).
L'obiettivo principale di Elk è la creazione di firmware per microcontrollori in JavaScript, che svolgono varie attività di automazione. Il motore è anche adatto per incorporare gestori in JavaScript in applicazioni in C/C++. Per utilizzare il motore nel proprio codice, è sufficiente inserire nel tree di sorgenti il file elk.c, includere il file di intestazione elk.h e utilizzare la chiamata js_eval. È consentita la chiamata da script JavaScript a funzioni definite nel codice C/C++, e viceversa. Il codice JavaScript viene eseguito in un ambiente protetto e isolato dal codice principale, utilizzando un interprete che non genera bytecode e non utilizza allocazione dinamica della memoria.
In Elk è implementato un piccolo ma sufficiente sottoinsieme delle specifiche Ecmascript 6. In particolare, è supportato un set di base di operatori e tipi, ma non è prevista la gestione di array, prototipi, espressioni this, new e delete. Si consiglia di utilizzare let al posto di var e const, mentre al posto di do, switch e for si suggerisce l'uso di while. Non è fornita una libreria standard, cioè non esistono oggetti come Date, Regexp, Function, String e Number.
Fonte: opennet.ru
