Skip to content

Moddable SDK 4.6.0

Compare
Choose a tag to compare
@mkellner mkellner released this 05 Apr 18:40
· 560 commits to public since this release

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 and esp32/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
      • Digital Bank no longer uninstalls GPIO ISR service as it may be in use by other system components
      • Analog input fully initializes data structures (Contributed by @linfan68) #1322
    • ILI9341_P8 driver
      • Defaults to 50 FPS
      • Enable tearing-effect interrupt
      • Fixes for compatibility with testmc
  • Modules
    • EventSource (for Server-Sent Events) now supports method, headers, and body 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 and Base64 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 of species that triggered a call to memcpy with overlapping ranges
      • Obscure native stack overflow in RegExp parser
      • Reliably convert -9223372036854775808 to BigInt
  • Tools
    • fontbm font generator
    • 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: