Está disponível uma nova versão do mecanismo JavaScript elk 2.0.9, direcionada 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 funcionamento da 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 C e distribuído sob licença GPLv2. Para compilar o projeto, basta um compilador C — dependências adicionais não são utilizadas. O projeto é desenvolvido por desenvolvedores do sistema operacional para dispositivos IoT Mongoose OS, do mecanismo JavaScript mJS e de embarcados. servidor web Mongoose (utilizado em produtos de empresas como Siemens, Schneider Electric, Broadcom, Bosch, Google, Samsung e Qualcomm).
O principal propósito do Elk é criar firmwares para microcontroladores em JavaScript que realizam várias tarefas de automação. O mecanismo também é adequado para integrar manipuladores em JavaScript em aplicativos em C/C++. Para usar o mecanismo em seu código, basta colocar o arquivo elk.c na árvore de código-fonte, incluir o cabeçalho elk.h e usar a chamada js_eval. É permitido chamar a partir de scripts JavaScript funções definidas no código em C/C++, e vice-versa. O código JavaScript é executado em um ambiente seguro e isolado do código principal, utilizando um interpretador que não gera bytecode e não utiliza alocação dinâmica de memória.
No Elk, foi implementado um subconjunto pequeno, mas suficiente para criar cenários de trabalho, da especificação Ecmascript 6. Em particular, é suportado um conjunto básico de operadores e tipos, mas não há suporte para arrays, protótipos, expressões this, new e delete. Em vez de var e const, é sugerido o uso de let, e em vez de do, switch e for — enquanto. Não há biblioteca padrão, ou seja, não existem objetos como Date, Regexp, Function, String e Number.
Fonte: opennet.ru
