JerryScript: An Ultra-lightweight JavaScript Engine for the Internet of Things
summary
JerryScript claims a 3 KB base footprint but needs ~32–64 KB RAM for real apps, targets devices with <64 KB RAM and <200 KB flash and implements ECMAScript 5.1 compliant behavior (100% test262). It uses 16-bit compressed pointers (≈0.5 MB heap), a compact bytecode generator, and optional precompiled bytecode; a Thumb-2 build is ~156 KB binary with LTO. Demonstrations include a networked Pong demo across devices (STM32F4 + Raspberry Pi) running smoothly in production on dozens to hundreds of thousands of devices.
AI-written summary · about
chapters (25)
- 0:00Intro
- 2:06Why JerryScript
- 4:45Background
- 6:45Optimization
- 8:20Portability
- 9:40Code Size
- 12:12STM32F4 Hardware
- 12:58STM32F5 Hardware
- 14:05API Example
- 14:35API Example 2
- 15:15Architecture
- 16:30Memory Consumption
- 19:00Compact bytecode
- 20:46Interpreter
- 21:25Concurrency pointers
- 22:38Type field
- 23:47Strings
- 24:53Number Representation
- 26:01Native Support Objects
- 26:49Performance Comparison
- 29:14Pong Demo
- 31:27LowPower Demo
- 32:50Future Work
- 34:09Summary
- 35:24Questions
related talks
36mHoney, I Shrunk the Scripts! — the secret life of JS on microcontrollers
45mJavaScript all the things
34mJavaScript on tiny, wearable hardware
16mRun Your JS App For Years On A Single Coin Cell
25mBuilding your Own Internet of Things with JavaScript
32mJS in Strange Places
54mRunning JS engine on a microcontroller (UK)
19mPocket-sized JS
