Skip to content

July 12, 2021

Compare
Choose a tag to compare
@phoddie phoddie released this 13 Jul 02:54
· 4798 commits to public since this release
  • XS
    • Metering cost for BigInt, RegExp, and string/numeric conversion operations now scale based on relative complexity of operation
    • After creating a snapshot, the VM can continue to be used (previously chunks were left in a bad state)
    • Add fx_Function_prototype_bound to native callback list in snapshots so bound functions work in snapshots
    • Error stack capture fixes (handles when no function name available)
    • BigInt values under construction are now fully initialized before the garbage collector runs to fix elusive failures and crashes
    • Remove reference to handler of resolved promises to fix memory leak
    • Fix to UTF-8 validation in String.fromArrayBuffer
    • WeakMap support re-written to use fully transposed internal representation to improve performance, especially for large maps
    • Use stdint.h to define sized integers (was already used in most places, this replaces the last hold-out)
    • Better error handling when installing mods. When a mod uses more keys (symbols) than the host supports, an error is traced in the xsbug console rather than silent failure.
  • ECMAScript® Embedded Systems API Specification
    • Add PulseCount module for ESP32
    • Add rotary-encoder example for PulseCount
    • SPI support for ESP32-S2
    • Start of support for providers based on sub-platform (esp32/moddable_two, not only platform (esp32)
    • Add providers for Moddable Three, ESP32 Thing, ESP32 Thing Plus, Kaluga, LilyGo TTGO, M5Atom Echo, M5 Atom Lite, M5Atom Matrix, M5Stack, M5Stack Core2, M5Stack Fire, M5Stick C, Saola Wroom, Saola Wrover, and ESP32 Wrover Kit
    • Added experimental sensor drivers with example apps
  • Audio playback
    • AudioOut supports playback of SBC encoded audio (embedded decoder by Peter Barrett). (example pending)
    • AudioOut supports Tone (square wave) and Silence commands for rendering. Documentation updated.
  • QRCode
    • Custom renderer for QRCode allows rendering more complex QRCodes faster with much smaller display lists (less memory). Previously version 3 was a practical limit, now limited by display resolution.
    • QRCode Example updated to use new drawQRCode.
    • Piu module added to render QRCodes.
  • Modules
    • Add TextDecoder and TextEncoder modules. These implementations are subsets of the web versions, supporting only UTF-8 and not implementing streaming mode. Throws on attempts to use unsupported features.
    • ZIP module provides CRC and and compression method, is compatible with output of more ZIP file writers
    • zlib inflate module now accepts TypedArray arguments
    • PocoDrawExternal API added xphase to allow rendering plug-ins to support 4-bit pixels
  • TLS
    • Fix TLS edge case that caused failure with secure connections to test.mosquitto.org
    • TLS now always sends Signature Algorithms extensions as part of HELLO (required by some servers)
  • Documentation
    • Wasm build documentation updated for Apple M1 Silicon
    • Update XS in C documentation to explain how to implement a native getter accessor function.
  • GIF
    • Optimize GIF decoding for images with 16 to 32 colors (5-bit special case) to reduce memory required for backing store
    • GIF example updated to work with latest GIF rendering API (poco.drawBitmapWithKeyColor)
    • Giphy app shows an error when no search results are returned
  • Piu
    • Piu Text object now line-breaks Chinese characters correctly
    • Piu Sound object updated to support playback of tones.
  • Tools
    • Added documentation for new mcbundle tool to batch build projects for multiple device targets
    • Simulators report reason for abort (fxAbort) in dialog
    • Add device target for esp32/esp32_thing_plus