Moddable SDK 4.6.0
The Moddable SDK 4.6.0 release contains improvements made between March 4, 2024 and April 3, 2024.
Highlights of this release include:
- M5Nano C6 and M5Stack Core 2 v1.1 device support
- Support for proposed standard Base64 and Hex extensions to
Uint8Array
from Ecma TC39. XS is the first JavaScript engine to ship support for this proposal! Please give it a try to help evaluate the design before it is finalized. - fontbm now included in the release tools binaries making it easier than ever to use custom fonts in your projects (if you don't use the downloadable release binaries, you'll still continue building fontbm yourself)
Note: This release is expected to be the last using ESP-IDF 5.1.2. We will migrate to ESP-IDF 5.2.1 in the next few weeks. ESP-IDF 5.2.1 has many Wi-Fi and BLE improvements.
Release Details
- Devices
- Add support for M5Stack Core 2 v1.1. (Contributed by @meganetaaan and first time contributor @RChikamura!)
- Add support for M5Nano C6 (
esp32/m5nanoc6
) (contributed by @stc1988) - Add
esp32/esp32h2_cdc
andesp32/esp32c6_cdc
platform targets for USB debugging (motivated by @stc1988) #1326
- ESP32 family
- Wi-Fi now clears credentials when done with a connection to avoid unexpected reconnects
- ECMA-419
- ILI9341_P8 driver
- Defaults to 50 FPS
- Enable tearing-effect interrupt
- Fixes for compatibility with testmc
- Modules
EventSource
(for Server-Sent Events) now supportsmethod
,headers
, andbody
options. This was motivated by certain AI cloud services.- AudioOut and
pins/servo
modules now link on Linux for convenience when using the simulator (Reported by @ronron-gh) #1328 - Piu outline shape object supports disabling bounding box clip
- zlib encoder and decoder modules reduce native stack size by moving buffers from stack to heap. This allows the modules to be used reliably with the default stack configurations.
- XS
- Base64 / Hex Stage 3 proposal fully implemented
- See proposal's playground for documentation and examples
- Passes 100% of test262 tests
- API designed enables streaming decoding and encoding to reduce peak memory use. See the example.
- Moddable SDK modules and examples updated to use new JavaScript language Base64 and Hex transformations in place of Moddable SDK Base64 and Hex modules
Hex
andBase64
modules still supported, but new code is recommended to use the new JavaScript language features
- Fixes for issues uncovered through fuzz testing. Thank you to @Agoric for their support of this work.
- Obscure bug in
DataView.prototype.slice
triggered by hostile use ofspecies
that triggered a call tomemcpy
with overlapping ranges - Obscure native stack overflow in
RegExp
parser - Reliably convert
-9223372036854775808
toBigInt
- Obscure bug in
- Base64 / Hex Stage 3 proposal fully implemented
- Tools
fontbm
font generator- Supports user supplied character files. Documentation. (Motivated by work by @kitazaki and input from @NW-Lab) phoddie/node-red-mcu#123
- If
fontbm
is available in the default$PATH
, then$(FONTBM)
environment variable no longer needs to be set
- test262 now runs on ESP32-S3 devices using
esp32/esp32s3
platform target xst
now has-b
option to load binary files as JavaScript source text (useful for fuzzer generated test cases)- Disable ASAN on RegExp stack check for more reliable fuzzing (contributed by @raphdev)
- Tests
- Wi-Fi scan cancel test waits for final scan to complete
- Wi-Fi mode off test uses
$DONE(err)
instead of throwing - Wi-Fi constructor BSSID test uses highest signal strength access point if more than one available to improve reliability of test
- Wi-Fi timeouts increased to allow tests to pass in more environments
- TypeScript
- Typings for the standalone easing functions, recently split out from Piu. (Contributed by @stc1988)
Contact Us
If you have questions or suggestions about anything here, please reach out:
- Start a new Discussion on our GitHub repository
- Drop by our Gitter to chat
- Contact us on Twitter at @moddabletech