Espurino is a JS interpreter for microcontrollers. It can run JavaScript programs on a chip with 8KB of RAM, which is an impressive achievement. It is however, not JavaScript as you know it. This produces a 4kHz square wave:

while (1) {A0.set();A0.reset();}
And this produces a 3.5kHz square wave:
while (1) { A0.set();                 A0.reset();               }
Cute. We do our best to pretend our stack of CPU micro-ops, CPU caches, kernel schedulers, optimizing compilers, JIT compilers, and garbage collectors don't exist when we program. That almost always makes sense, because they almost always work. But it is nice to see a reminder that interpreting a program is not compiling it.

[email protected]