Skip to content

August 5, 2021

Choose a tag to compare

@phoddie phoddie released this 07 Aug 14:33
· 6384 commits to public since this release
  • XS
    • Array instances over-allocate when growing in certain circumstances. This improves performance when an array is populated by repeatedly calling push or unshift. The over-allocation is reclaimed on the next run of the garbage collector.
    • pop and shift operations on Array instances do not resize the array allocation. The garbage collector shrinks the block as needed.
    • XS implements the Stage 3 at proposal for Array.prototype.at, String.prototype.at and TypedArray.prototype.at. This allows the use of negative index values to get values from the end of an array, for example array.at(-1) is equivalent to array[array.length - 1].
    • Map and Set instances dynamically grow and shrink their hash table based on the number of elements they contain. This provides consistent performance independent of the element count. XS uses better hash functions for better distribution and ease in resizing the table.
    • Map and Set iterators have been rewritten and now pass 4 additional test262 tests.
    • XS now properly handles Unicode white-space characters above the Latin-1 range #665 (reported by @gibson042)
    • Number.prototype.toLocaleString now conforms to the specification #674 (reported by @mathiasbynens)
  • Raspberry Pico
    • Our preview pico branch is fully up-to-date with this release of the Moddable SDK and is working well. Give it try.
  • ECMAScript® Embedded Systems API Specification
    • Conformance improvements and/or documentation updates for CCS881, LM75, URM09, MLX90614, and QWIC moisture sensor
    • New accelerometer sensors: LIS3DH, LSM303DLHC, MPU6050, MPU9250
    • New magnetometer sensor: AK8963
    • New capacitive moisture sensor: SEN0193
    • New touch driver: FT6206
    • Add required delay after soft reset of BMP280 sensor
    • Add default analog input to built-in providers for Moddable Three, ESP8266 NodeMCU, ESP32 Thing, and ESP32 Wrover Kit
    • Disallow providing undefined for a pin specifier. Now throws an exception rather than coercing to pin 0.
  • Modules
    • TextDecoder supports stream option and implementation of ignoreBOM fixed to match specification.
    • TextEncoder implements encodeInto
    • wificonnection module adds support for cycling through a list of access points to find on that is available
    • lwip socket - don't call tcp_output to flush pending write after socket is closed (fixes crash if write made immediately before closing socket)
    • Wi-Fi on ESP32 can now be set to mode zero to disable fully
    • Wi-Fi on ESP32 operating a soft access point delivers "station_connect" and "station_disconnect" messages
    • Net module on ESP32 can now return information about the Ethernet connection
  • Hardware
    • Option to play start-up vibration on M5stack core2 (contributed by @stc1988)
    • Fix hardware rotation in ILI9341 (broken when GRAM offsets added)
    • Added pinout diagram to Moddable Three documentation
  • Graphics
    • Added spiffy new Moddable Three window display demo app (coming soon to the front window at Moddable HQ)
    • Giphy app rotates landscape screens to portrait
    • Piu texture constructor now has option to accept separate paths for alpha and color images
  • Mods
    • ESP8266 and ESP32 hosts return the preferred block size for install mods. mcrun/serial2xsbug now use the preferred block size. This allows for faster installs when the MCU has more free memory and avoids install failures when memory is tight.
    • mcrun/serial2xsbug now report an error before trying to install a mod bigger than the available installation space
    • Eliminated spurious traces about fatal mod installs
  • Tools
    • mcbundle tool is now available on Windows
  • TypeScript
    • Add declaration for playback of tones in Piu (contributed by @stc1988)