October 14, 2020
This release is primarily an update to the XS JavaScript engine.
- New optimization added to XS Linker to improve performance of property look-up for objects preloaded in flash/ROM. The performance gain is up to 18%, depending on a variety of factors. The optimization is based on graph coloring. See the ROM Colors document for details.
- New XS byte code for for strings larger than 64 KB (found during work with @Agoric)
- XS fix for "Object rest incorrectly accepts complex assignment targets" #155 (reported by @bakkot)
- XS fix for "Eval preventing const declaration in the caller scope" #64 (reported by @tevador)
- XS fix for "Object rest incorrectly accepts complex assignment targets" #155 (reported by @bakkot)
- XS fix for "XS allows trailing comma in Expressions" #315 (reported by @jugglinmike)
- XS fix for "async function: silent swallowing of the 'override mistake'" #322 (reported by @michaelfig) and "XS does not apply runtime strict mode restrictions to async functions" #334 (reported by @jugglinmike). These two reports are both symptoms of the same bug: an async function body ran in sloppy mode! Great find.
Note: The changes to the XS JavaScript engine are not backwards compatible with precompiled byte code. After updating, be sure to clear the contents of $MODDABLE/build/bin
and $MODDABLE/build/tmp
, and then rebuild tools. See Moddable SDK - Keeping Up To Date for details.
Note:: The xst
binaries used by jsvu have been updated to this release of XS (10.4.0).
Other changes:
- Project manifests for mods may now specify the rotation and pixel format, just like manifests for hosts
- Correct time passed to Piu touch events (introduced in recent scheduling changes to Piu)