Fixed bug when RegExp.match/test called on non-strings
Fix unreliable ArrayBufferView.indexOf (#1468)
parseFloat(".s") now returns NaN
Fixed /\S+/.test(" ")
Allow '.then' on already-resolved promise (fix #1476)
Stop atob adding trailing 0s when strings are not a multiple of 3 long
Fix Array.shift (returned a NAME, rather than the value)
Stop characters getting dropped when pasting large amounts of data into Linux build
Fix Math.round for numbers > 32 bit (fix #1485)
Fix JS state restoration issue (eg. Pixl.menu inside switch would cause errors)
Fix setDeviceClockCmd: Unknown Device when using LoopbackB.setConsole() on WiFi board
Fix buffer overrun if we have to reallocate a pointer to argument lists when calling a function (fix #1491)
Fix stack overflow if executing regex full of hundreds of open brackets (fix #1487)
Fix issue where STM32F4 USB could lock up if TX during heavy RX
Fix 'Can't extend undefined' when using Object.setPrototypeOf on a function
Fixed hang if trying to allocate Storage greater than total storage size in a fully erased Storage area.
Fix assert fail when calling Function.apply with an Object with non-numeric keys
Fix issue when AT lib has to process multiple custom line handers in one packet
Espruino WiFi: Fix unreliable send when receiving lots of data on another socket
Espruino WiFi: Only rename EspruinoWiFi to WiFi if not found (allows easier debug)
Ensure that setBusyIndicator updates output state after the very first initialisation.
Ensure Date.getTimezoneOffset() returns the correct timezone offset (fix #1515)
Features lost
Unfortunately with all this work I've had to spend a lot of time stripping things back to keep Espruino building on the more constrained platforms. These changes have been made carefully to try and remove features that people weren't using anyway.
Lower saved code area to 2k on micro:bit (from 3)
Remove RGB colour handling in setColor on devices with low flash
Reduce available variable count on STM32VL - we were too low on RAM
Remove Graphics.scroll/drawCircle/fillCircle on devices with low flash to allow builds to fit again
On devices with low flash, ensure atan2 uses the slower/smaller atan implementation
Move FFT back to 64 bit if low flash (it uses less memory!) and optimise for flash space
Remove Olimexino from build (too difficult to slim down build and very low usage)
Remove HASH/hashlib from all builds as it was confusingly in some and not others. Now use 'crypto'
require('crypto').SHA1 is now JS in Espruino Original to cut down on the flash required
Pixl.js: reduce saved code area to 9 x 4kb to allow for extra features
microbit: remove line-by-line debug capability to free up some space
Espruino is a JavaScript interpreter for low-power Microcontrollers. This site is both a support community for Espruino and a place to share what you are working on.
Other boards
Fixes
setDeviceClockCmd: Unknown Device
when usingLoopbackB.setConsole()
on WiFi boardEspruinoWiFi
toWiFi
if not found (allows easier debug)Date.getTimezoneOffset()
returns the correct timezone offset (fix #1515)Features lost
Unfortunately with all this work I've had to spend a lot of time stripping things back to keep Espruino building on the more constrained platforms. These changes have been made carefully to try and remove features that people weren't using anyway.