Uma nova versão do mecanismo JavaScript elk 2.0.9 está disponível, destinada ao uso em sistemas com recursos limitados, como microcontroladores, incluindo placas ESP32 e Arduino Nano com 2 KB de RAM e 30 KB de Flash. Para operar a máquina virtual fornecida, são suficientes 100 bytes de memória e 20 KB de espaço de armazenamento. O código do projeto é escrito em linguagem C e distribuído sob a licença GPLv2. Para construir o projeto, basta um compilador C - nenhuma dependência adicional é usada. O projeto está sendo desenvolvido pelos desenvolvedores do sistema operacional para dispositivos IoT Mongoose OS, do motor mJS JavaScript e do servidor web embarcado Mongoose (usado em produtos de empresas como Siemens, Schneider Electric, Broadcom, Bosch, Google, Samsung e Qualcomm ).
O principal objetivo do Elk é criar firmware para microcontroladores em JavaScript que executam diversas tarefas de automação. O mecanismo também é adequado para incorporar manipuladores JavaScript em aplicativos C/C++. Para usar o mecanismo em seu código, basta colocar o arquivo elk.c na árvore de origem, incluir o arquivo de cabeçalho elk.h e usar a chamada js_eval. É permitido chamar funções definidas em código C/C++ a partir de scripts JavaScript e vice-versa. O código JavaScript é executado em um ambiente protegido e isolado do código principal por meio de um interpretador que não gera bytecode e não utiliza alocação dinâmica de memória.
Elk implementa um pequeno subconjunto da especificação Ecmascript 6, mas suficiente para criar scripts de trabalho. Em particular, suporta um conjunto básico de operadores e tipos, mas não suporta matrizes, protótipos, ou expressões this, new e delete. Propõe-se usar let em vez de var e const, e while em vez de do, switch e for. Nenhuma biblioteca padrão fornecida, ou seja, não existem objetos Date, Regexp, Function, String e Number.
Fonte: opennet.ru