December 16, 2020
-
XS JavaScript engine
- XS hosts for computers, ESP8266, and ESP32 now ignore
.jsand.mjsextensions when resolving modules. This capability is provided to ease use of JavaScript source code originally written for, or shared with, the web platform. It is not recommended for code intended only for use with the Moddable SDK. (requested by @dckc, @wmhilton, and a cast of thousands) - Fixes to optional chain call. While the implementation successfully passed test262, in some cases it left the stack in an incorrect state. Now you can safely write
this.close?.() - Much larger stack in XS linker when preloading
- Note: To use these XS changes, your need to update, rebuild Moddable SDK tools, and perform a clean build of your project. Details on how to do that are in the Update sections of the Getting Started guide for macOS, Windows, and Linux.
- XS hosts for computers, ESP8266, and ESP32 now ignore
-
TypeScript support
- Improvements to built-in type declarations, including the handful of XS extensions to the built-ins
- Fix bug when building TypeScript source files stored in sub-directories (reported by @ariznaf)
-
BLE
- Add
SM.deleteBonding()API and associatedonBondingDeleted()callback to delete a single bonded peer - Pass address and address type to client/server
onDisconnected()callbacks - Pass bonded status to server
onAuthenticated()callback - BLE keyboard example enhancements and fixes: generate callbacks for key down / up, fix caps lock handling, freeze instances for preload, and report arrow keys by name.
- Add
-
Documentation
- Major overhaul of Moddable SDK documentation based on developer feedback
- Root Read Me has guide to supported microcontrollers and development boards, overview of source tree, a new resource guide, and more
- Set-up guide for macOS, Windows, and Linux are simplified and reorganized
- Dedicated guides for using the Moddable SDK with ESP8266, ESP32, QCA4020, and Gecko microcontrollers
- Enhanced documentation overview makes it easier to navigate the hundreds of pages of technical documentaiton
-
ECMAScript Modules for Embedded Systems
- Experimental Ecma TC53 IO implementation has been updated to conform to the latest specification
- Examples updated as well
-
Simulators
- Simulated Wi-Fi connection for simulator (thanks to @wilberforce for some help)
- ZIP module now builds on Windows simulator
- Fix build of simulator on Linux for Raspberry Pi (reported by @natevw)
-
Enhancements
- Add message constants to
Socket - Add get battery voltage and current to AXP192 driver (by @stc1988)
- Add Deflate implementation using miniz. Works in simulator but requires too much memory for most MCUs. Renamed Inflate directory to zlib.
- Commodetto and Piu now use the Unicode horizontal ellipsis character when truncating text if available in the font. If not, they fall back to three consecutive periods. Good typography matters.
- Moddable office window display animation app added to contributed directory. Details in blog post by Lizzie Prader.
bles2gatttool now reports details of JSON parse errors in service descriptions and absence of some required elements- Updated tools documentation to expand on using command line arguments to
mcconfigto add to the config #509 (suggested by @dckc)
- Add message constants to
-
Fixes
- Fix remote socket disconnect failure on lwip socket implementation #503 (reported by @mlnuaa)
- Don't double count HTTP client received bytes when using a callback to receive fragments #516 (reported by @wilberforce)
serial2xsbugnow sets the correct timezone when running on Windows #502 (thanks to @wilberforce for help in tracking this down)- Instrumentation works again for Web Workers
- Fix timers to be safe with Web Workers on QCA4020
- Fix bug in
Preferencecompaction on ESP8266 - Fix
ResourceIteratorcompilation on ESP8266 mcconfigandmcrunmanifests now allow multiple path levels in directory targets on Windows too (reported by @ariznaf)