summaryrefslogtreecommitdiff
path: root/components/external/espruino/ChangeLog
diff options
context:
space:
mode:
Diffstat (limited to 'components/external/espruino/ChangeLog')
-rw-r--r--components/external/espruino/ChangeLog515
1 files changed, 515 insertions, 0 deletions
diff --git a/components/external/espruino/ChangeLog b/components/external/espruino/ChangeLog
new file mode 100644
index 0000000000..40beec975f
--- /dev/null
+++ b/components/external/espruino/ChangeLog
@@ -0,0 +1,515 @@
+ 1v46 : ...
+
+ 1v45 : Fix parseFloat("foo") not returning NaN (and assert) - fix #149
+ Remove Integer.parseInt
+ Fix parseInt("bar") - fix #150
+ Ensure that maths ops with null do treat it as 0 rather than a string - fix #156
+ Fix digitalPulse length (properly!) - fix #154
+ Making sure that undefined gets cast to NaN
+ Fix Array.indexOf() returns undefined instead of -1 - fix #155
+ Moved memory() to process.memory() - added more info too
+ Try and improve handling of PWM timer speeds
+ Fixed varying SPI baud rates depending on device
+ Makefile changes for OSX compile
+
+ 1v44 : Modified build system to store binary names in the python definition
+ Fix nasty regression involving losing code at the end of Strings
+ Fix segfault when pinMode is called on an invalid pin
+ Now disable interrupts during 4 bit SPI send - it's just too much otherwise
+ Detect unfinished block comments in console (fix #138)
+ Fix flash write on most 10XxB boards
+ Fix PWM output on all STM32 boards
+ General hardware tidy in prep for more intelligent device management
+ Run initialisation code before setWatch, to make sure pullup/down is set beforehand
+ Change 'Pin' datatype to be an unsigned char - makes tests easier
+ Now use the hardware RTC for keeping system time. Allows proper deep sleep on Espruino board
+ FINALLY - fix the USB VCP lost characters issue (#94)
+
+ 1v43 : Added 'Modules' object with support for adding/removing cached modules
+ Allow product ID to be changed via Makefile
+ Fix documentation (and old-fashined Parsing style) for JSON
+ build_jswrapper now outputs errors to stderr (more compatible with default (silent) build process)
+ Fix issue when parsing quotes in strings
+ Added void operator for closure minification compatibility
+ Ensure that return takes the comma operator
+ Fix issue where printing Infinity would crash Espruino (fix #129)
+ Finally some working (extremely beta) cc3000 code
+ Added jsvObjectGet/SetChild to simplify some wrappers
+ 'http' now uses JsVars for storage (so is suitable for non-linux devices)
+ Turned 'http' into a library
+ Added process.version and process.env (fix #131)
+ Changed handling of 2nd arg of << so that precedence is correct
+ Fixed handling of 'for (;;)'
+ Fix lock leak in Module handling
+ Update ST's library for the STM32F1
+ Update ST's VCP implementation
+ Added prefix operator (fix #130)
+ Allow espruino for linux to be run with '#!' in scripts
+ Fix indexOf on final element of strings (fix #133)
+ Remove JSV_PARENTINFO, as it turns out JS doesn't keep track of function scopes anyway (fix #109)
+ Make 'this' a keyword (now faster, more memory efficient)
+ Make 'Hardware' (root) the default value of 'this'
+ Add jsvArrayPushAndUnLock and modified code to use it (fix #135)
+ Now remember I2C state (partial fix for #13)
+ Replace 'pow' function with a smaller version - save ~2kb
+ Shaved another 1200 bytes off jslTokenAsString
+ Now store Pin state (fix for #13 on F1 parts, F4 still looks broken)
+ Added Graphics.stringWidth
+ Added internal Printf function
+ Misc speed and code size improvements
+ This version has gone to Seeed for use on the KickStarter boards
+
+ 1v42 : [ebirger] allowing 'new' with no brackets
+ Allow built-in functions with variable numbers of arguments (fix #83)
+ Implement 'String' constructor in the normal way (fix #110)
+ Fix regression with parsing constructors while not executing
+ Allow multiple arguments to print and console.log (fix #92)
+ Make 'arguments' array available in functions (fix #100)
+ Fix an assert fail, and handle some potential memory leaks
+ Don't show __proto__ and constructor with for..in, keys(), or JSON.stringify
+ Make 'trace()' output more readable debug data for complex structures
+ Fix memory leak whe parsing functions iwht variable numbers of arguments - fix #115
+ Defined NaN
+ Stop 'new undefined()' crashing Espruino - fix #120
+ Get A13/A14 working on Espruino board (these were JTAG)
+ Get bootloader size direct from Python (remove hard-coding)
+ Fix '~' operator when acting on variables
+ Made bootloader a bit more error tolerate (CRC on write)
+ Added %=, /=, and *= operators (fix #121)
+ Allowed Object.toString() to take a radix argument for integers (fix #125)
+ Fix error message issue - broken strncat (fix #124)
+ Add comma operator (fix #122)
+ Added some basic code for STM32F429IDISCOVERY - not currently working though
+ This version is the one sent off on the Test Harness (so will probably appear on boards)
+
+ 1v41 : Fix Olimexino compile (https://github.com/espruino/Espruino/issues/6)
+ [ebirger] Member constructors (eg. new a.b() )
+ [ebirger] Ensuring integers with radix specifiers can still be parsed if a radix is specified
+ Fix for tests/test_json_arraybuffer_001.js - iteration of arraybuffers of length==1
+ Add Object.keys(...)
+ More arraybuffer iteration fixes
+ On linux, use built-in stringToFloat to aid debugging. Handle exponentials, fix #31
+ 'make serialflash' is now works correctly for Espruino Boards with bootloader
+ setWatch(..A0);setWatch(..A0);clearWatch(1) does not now kill the other watch, fix #25
+ One-based setTimeout/setWatch, fix #3
+ Added Function.call and Function.apply, fix #54
+ 'http' and 'fs' are now libraries that need to be 'require'd, fix #8
+ Updated pin info for STM32F103xC/D/E chips, fix #84
+ Fixed linker script for STM32F4 (discovery board now works)
+ Object prototypes are now Objects, fix #101
+ Board docs now specify '3.3v' only pins fix #104
+ Add Array.forEach
+ Fix searching down >1 prototype to find functions (one more issue posted in #99)
+ Fix "12345"/5 type issues (fix #90)
+ 'Consting' some string functions
+ Fixing arrays with string indices that are actually numbers \o/ (fix #19)
+ Released onto website
+
+ 1v40 : Ensure that LCD.prototype.setPixel = function actually works
+ Refactor LCD driver code to allow lcdInit (and start of making it non-platform-specific)
+ Built 'LCD' support into linux/raspi/carambola
+ Add initial SPI.send(ArrayBuffer) support - even if NO VALUES RETURNED
+ Start of built-in Nokia 5110 LCD support
+ Remove GPIO clock removal on sleep for now (it kills setWatch)
+ Fix (sub)ArrayBuffer problems (test100.js)
+ Added setDeepSleep - still beta put power consumption drops to 1mA
+ Fix broken name for httpCRq.write
+ Changed LCD to Graphics - added ability to render to ArrayBuffer
+ Fix 8 char built-in class names
+ Adding preliminary Sony SmartWatch support
+ Adding preliminary support for completely bare 36 pin chip
+ Fixing pin defs for Espruino board rev 1v1
+ Added proper SDL/ArrayBuffer and JS Callback graphics support
+ Added "ifdef" ability in build_jswrapper
+ Take JSVAR_CACHE_SIZE out of jsutils and put it in the board config file
+ Added JSV_PARENTINFO which will allow us to do things like setTimeout(foo.bar,10)
+ Fixed arrays in non-executes streams - 'if (0) print([1,2,3]);'
+ Added 'require' function loading modules from node_modules on SD card
+ Added module cache to stop modules being re-loaded
+ Renamed internal vars to start with '>' - much easier to distinguish for 'dump'/etc
+ Only use parentInfo on functions
+ Load all tests in test dir - don't do them by number
+ Added 'zigzag' ordering for ArrayBuffer Graphics
+ Added 'vertical_byte' ordering for ArrayBuffer Graphics
+ toJSON now ignores 'hidden' object elements
+ Special-case jsvArrayBufferIteratorSetIntegerValue
+ Make SPI output an ArrayBuffer
+ Use best out of 3 for DelayMicroseconds calibration - something seems flaky right after bootup
+ Lines now drawn from p1 to p2 inclusive
+ Events now use jshPushIOWatchEvent (should cut down on code) also fixed bug with watching pin #11
+ Now remember if pinMode was set or not
+ Transform ```code``` in JSON into a code tag in the documentation
+ Graphics now supports FSMC for HY boards again
+ Drawing vector fonts is now roughly the right size and position (still not 100%)
+ Remove registration code
+ Adding MPL licence
+ Remove Arduino bit manipulation functions - nobody seems to use them anyway
+ # of flash pages/etc now comes from board info
+ [ebirger] Supply the correct arguments to Array.map
+ [ebirger] Method calls and membership evaluation should be done on all factors (ee. [1,2,3].foo())
+ [ebirger] When running multiple tests, only set up terminal once or it breaks the terminal window on exit
+ Added STM32-style USB CDC bootloader for Espruino Boards
+ Added scripts/create_espruino_image.sh to package up bootloader and espruino into one binary
+ SHIPPED on Impatient developer boards
+
+ 1v39 : Added Bitwise NOT operator
+ Added Raspberry Pi version to ZIP (with HTTP support)
+ Fixed load/save on Linux Devices
+ Added pinMode function (to allow pull-ups/pull-downs to be turned on)
+ SPI.send4bit/send8bit will now not mess up the final element
+ changeInterval now clears up stored up callbacks (eg, setInterval(.., 0.01)...wait...changeInterval(...,20)
+ Ctrl-C no longer prints anything, which avoids lockups
+ No longer print "Execution Interrupted" if nothing was interrupted!
+ Added >>>= >>= and <<=
+ When entering text interactively, ensure that there are no trailing spaces
+
+ 1v38 : Tweaks for Arduino IDE compile
+ Removed '(char #)' from stack trace, as a bit pointless now
+ Added better reporting of execution location when Ctrl-C pressed
+ Urgent fix for non-working Olimexino since 1v33
+ Fix string comparison when strings contain "\0"
+ Added LED1/2/OSC/SD/etc to Olimexino Board docs
+
+ 1v37 : Urgent fix - power saving code made it difficult to re-flash Espruino (now only apply this to Espruino Board)
+
+ 1v36 : Fix documentation for Array.pop()
+ Added some much better board documentation
+ Fixed DAC output on F3
+ Fixed DAC output on devices where PWM is also available and the alternate function is less than the DAC's
+
+ 1v35 : Attempt to reduce power consumption when sleeping by turning off GPIO, and setting GPIOs to AIN on reset
+ Fix F3 issue where ADC/DAC weren't picked up properly
+ Tidy up register text and add KickStarter mention
+ var a = {}; a[LED1]=0; - not converted to String
+ JSON (and hence dump()) now dumps ArrayBuffer correctly
+
+ 1v34 : Faster jshFromDeviceString
+ Preliminary support for flow control on Serial receive
+ Speed improvements by removing jsvGetRef from jsvUnLock
+ fast 4 byte pre-check in jsvFindChildFromString
+ Skip lock/unlock in FindChildFromString to help increase speed
+ When we unplug USB, only go to the default console device IF that is the device we're currently on
+ Support for custom Espruino board
+ Added ArrayBufferView.interpolate
+ 16 bit SPI send for send4bit/sevrnd8bit (better reliability on low-end chips)
+ Fix JSON dump of typed array
+ Added Math.clip(x, min, max)
+ When saving on flash, don't do jslTokenAsString properly
+ B3/B4 move from alternate fn
+ Fix incorrect reporting of analog pins
+ Fix I2C.readFrom on STM32F1/4
+ Make 1/2 == 0.5 (was being sensible before, but now follow JS spec)
+ Ctrl-C while in timer fn clears timers (but not outside it)
+ Fixed broken clearInterval from within setInterval
+ Hopefully fixed issue on SSD1289 LCD controller
+ Trigger wheel handler to use interrupts
+ 2D arraybuffer interpolation
+ Added Math.wrap, fixed a lot of trigger issues
+ Fixed SysTick priority/preempt problems
+ Slowed the SysTick timer back down for everything
+ Fix Int8Array signedness on F4 boards
+ Refactored source code tree
+
+ 1v33 : fix character encoding issue of "\16"+"1" != "\161"
+ Refactoring of ArrayBuffer into iterator, and addition of a general purpose iterator
+ Fancier assert for debugging
+ jsvArrayJoin to use new iterator
+ for (i in ...) to use new iterator
+ I2C and SPI use new iterator
+ Serial.write() - to allow single ints to easily be written
+ changeInterval assert fail when given a function by accident
+ added peek8/poke8/peek16/poke16
+ memory() now takes account of command history size
+ memory() on ARM reports the end address of the stack - so it can be used as a scratchpad with peek and poke
+ Try and reduce code size by not inlining several functions
+ No refs for StringExts - so we get one more byte per JsVar (~5%) more storage efficiency
+ Move from jsvIsBuiltInFunction to computer-generated jswIsBuiltInFunction
+ When creating Objects, check for built-in function BEFORE creating an Object class for it
+ Built process now checks that flash usage is under the allowed value
+ Added short compare to jswHandleFunctionCall to reduce code size
+ Added 3 byte compare (4 byte read and AND off top byte) - faster, less code
+ Auto-generate jsvGetBasicObjectName from docs
+ No longer using refs for storing whether free or not - use flags with JSV_UNUSED and get one extra var with 8 bit refs
+ Switch to using STRING_0...STRING_MAX in flags, rather than specific bits in JsVarFlags - allows more that 15 chars to be used per JsVar
+ Make ArrayBuffers actually be ArrayBufferViews - saves on extra string-handling code at expense of one var
+ Make sure Uint8Array,etc inherits from ArrayBufferView
+ Fix issue where a '\0' coming in from serial was not put in e.data properly
+ Don't inline some functions when we're trying to save on flash
+ Re-use sin for cos, pow for sqrt to reduce code size
+
+ 1v32 : Fixed embarassing issue with 0.999=="0.A"
+ Added and checked Pin.writeAtTime on STM32
+ Now don't allocate events array - just allocate directly, which saves memory and is faster (although slighty out of order)
+ Docs: now Alphabetically sorted, and class instances not listed by accident
+ Fix issue where Ctrl-C on ANY Serial port caused execution to be interrupted
+ Updated busy indicator to cope with recent change to not allocate events in an array
+ Fixed I2C on HY 2.4 board - I2C needed hard reset
+ Added basic ArrayBuffers/TypedArray support
+ Fix memory leak when error created with [] on a non-array/object
+ Improved hyperlinking in documentation
+ Fix I2C receive bug on F4
+ Increased VL board's input buffer size
+
+ 1v31 : Fix PWM output on TIMER1/8 pins of the STM32F4
+ Fix PWM output for negated timers
+ memory() now runs a GC pass
+ Fixed multiple occurrence of functions in reference
+
+ 1v30 : STM32F1: fixed AF issue meant peripherals would never return from AF mode
+ STM32F1: When given an invalid pin, now reports if pins are 'af' or not
+ Updated SPI.setup docs to mention that you can't mix AF and non-AF
+ If one SPI pin is specified but others aren't, only that pin will be set up
+ Added Olimexino hack so SPI1.setup works as expected
+ Allow using [] on a function
+ Fix precedence issue, so var a = function() { return 1; }(); works
+ Update SPI documentation
+ for (i in f) can now iterate over functions
+ Optional argument to trace() for object to start tracing from
+ Small steps towards ArrayBuffers
+ Added smart edit that checks for internal functions, and uses Function.replaceWith
+ Added Function.replaceWith to replace the internals of a function while keeping the scope
+
+ 1v29 : Some hacky sysfs-based IO for running on Linux
+ HTTP Callbacks are now stored as names so they can be changed on the fly (Linux only)
+ Successful compile for Carambola
+ Filesystem support on Linux
+ Switch to variable size ref counter (marginally more efficient on very small devices, safe on Linux)
+ Linux now has unlimited memory available
+ Added linux/sysfs 'setWatch' (non-irq driven, so very noddy)
+ Checked jswrapper check from using multi-char constants to a #define
+ Improve pin suggestions for SPI/I2C/USART
+ Auto-initialise USART with default values when setConsole is used
+ Support for new Graphics LCD types
+ 3.2" VCT6 board support
+
+ 1v28 : Faster LCD fillrect for HY 2.8
+ Fix for multi-byte SPI writes on HY board at 1Mhz (touchscreen control bug)
+ Fix issue with delayMicrosecond calibration on HY (and hence OneWire)
+ Fixed digitalPulse on STM32VLDISCOVERY
+
+ 1v27 : Fixed problem with OneWire constructor execution
+ Added |=, &= and ^=
+ Added Array.splice()
+ Faster, more ROM-efficient built-in symbol table
+ Fix for potential issue when using field accessor on an undefined var
+
+ 1v26 : I2C Support on STM32F1 and STM32F4 boards too
+ Emergency cut in variables for Olimexino with bootloader (as flash usage has got too high for save to flash!)
+
+ 1v25 : http.writeHead to accept an empty header
+ Fixed issue finding methods on built in classes (0 termination)
+ make sure http server with no data still sends headers...
+ Start of MINI-HY-2.8" support (all ok, but no SD card yet)
+ Reduce RAM usage by consting some arrays that are not modified
+ Vector fonts now use polys - 8kb less ROM, and faster rendering
+ Start of LCD 'driver' code
+ Standard way of handling events, Object.on/emit/removeAllListeners - like Node.js's EventEmitter
+ Self-calibrating Microsecond delay (for intermal OneWire/etc)
+ OneWire class
+ Correct handling of built-in class constructors
+ Fix error when parsing a zero-argument function that has been given arguments
+ I2C support - currently ONLY tested on STM32F3 board
+
+ 1v24 : SDIO-based fat driver on the HY STM32 board
+ Added DAC to the HY boards (103xE-based)
+ Re-named the fileSystem functions to make them more compatible with node.js (readFile/writeFile/etc)
+ Added fs.appendFile
+ Removed HTTP from the reference until it is included in some boards
+
+ 1v23 : Fix 'ERROR: INTERNAL: stmADCChannel' on STM32VLDISCOVERY/F1 boards when accessing PA0
+ Reference now mentions which Espruino version it is for
+
+ 1v22 : Important fix - Events got executed in the wrong order if they got queued up
+
+ 1v21 : Ensure SPI clock does not stop between bytes
+ Added SPI.send4bit and SPI.send8bit
+ Made sure the VL board's code fits into available flash
+ Smart += that can append to a string rather than cloning it
+ dump() prints functions properly, rather than 'var f = function() {}'
+ Pageup/down move the cursor to the beginning/end of input
+ LCD draw/fill with negative x and y
+
+ 1v20 : Add console.log
+ Fix automatic usleep for Linux
+ Added node.js-style HTTP server for Linux version
+ Fixed null-pointer issue when accessing something that doesn't exist on an object
+ Added node.js-style HTTP client for Linux version
+ Start of bit bashing functionality
+ for (i in "ABCD") console.log(i) -> 0,1,2,3
+ String array access (but not for writing - doesn't work in JS anyway)
+ String String.fromCharCode / charCodeAt
+ Added SPI baud rate setting
+ Vector font chars 'a' and '4' now work ok
+ Fix numeric exception when rendering a poly that has some identical points
+ Better digitalPulse (uses timer + interrupts)
+ analogWrite can now take an object with a 'frequency' argument for PWM
+
+ 1v19 : Fixed issue where var M=Math;M.random() failed
+ Fixed issue with var U=USB;U.print("Hello");
+ Remove loop iteration limit
+ Fix memory leak when a syntax error is in for '(i in arr)'
+ Save state of pin on setWatch interrupt (e.state)
+ Change setWatch to allow only on rise or fall as an option
+ clearWatch() clears all watches
+
+ 1v18 : DAC support on F3/F4
+ Serial.setup() can also take a second parameter of an object {tx,rx}
+ Better support for dump() with echo/setBusyIndicator/etc
+ Better dumping of prototypes on built-in vars
+ Don't add chars<32 (Except tab) to the input line
+ SPI1/2/3/4.setup() to take an object {baud,sck,miso,mosi}
+ Better hardware initialisation code (not UARTS auto-init if they are used)
+ Fix issues with prototypes
+ Peek/poke instructions
+ Start of I2C support (not usable yet)
+ Added Math. ceil/floor/exp/log
+
+ 1v17 : Support for running alongside the Maple bootloader
+ Fix parsing of numbers beginning with 0 when forceRadix!=8
+ Fixed USART1 on Maple/Olimexino devices
+
+ 1v16 : Inlining of jsvLock/UnLock in jsvar.h to improve speed
+ Move non-hardware-dependent stuff into jsdevices
+ Move jshardware.c into targets/stm32/jshardware.c, create 'targets/linux' and use a single makefile
+ For + While loops work without reallocating lex
+ Fix AddNativeFunction when function already exists (and tests + saved state)
+ Change jsvFindChildFromX to use JsVar* from JsVarRef - saves a lot of lock/unlock
+ Handle new Foo() as per spec (return value + init of this+prototype) - still does not cope with non-object prototype
+ Beginning of SD card support (works on Olimexino, but not very flexible)
+ Fix for parse/eval when given non-strings
+ Strings can now contain '\0'
+ Jumptable-friendly reserved word check
+ Jumptable-friendly builtin functions (massive refactor)
+ SPI support
+ HY board support, and graphics LCD
+ Added fillPoly, and Vector fonts
+ Added Registration code
+ Fixed some undefined function/array warnings
+ Much better HTML function documentation
+ Fixed edit() function
+ STM32F3 support, and now peripheral stuff is done with a script
+ explain what pins are available if a pin is not capable of requested fn
+ power on ADCs only when needed
+ LCD fillPoly speed improvements, + drawLine
+ Add datatype for Pin, so pins written to console by pin name rather than integer value.
+ Added Pin.set/Pin.reset
+ Change warning about 'undefined.' into an error (foo.reset() had unexpected consequences!)
+ Fix parsing of '1.0/-3'!
+ Add typeof and instanceof operators
+ Ensure that Serial1/SPI1/etc are objects of type 'Serial'/'SPI' - so prototypes can be added
+
+ 1v15 : Escaping JSON strings
+ Fix parsing of octal numbers in strings (so don't have to be 3 chars long)
+ Drastically improved stack usage using small stub functions (at expense of a bit of speed)
+ dump() also dumps out prototypes for functions
+
+ 1v14 : Fix complaint about pins during setBusyIndicator()
+ Increase available memory on OLIMEXINO
+ Added function memory() to return memory usage
+ setWatch now links to function names (rather than just functions)
+ dump() also handles Serial.onData(...)
+ Fix issue with JSON printing functions with arguments to console
+ prefix builtin variables with '_'
+ fix ArrayIndexOf when array contains undefineds
+ move all devices into one git repository
+ USB on F4
+ call onInit function/string if it exists when Espruino powers on
+ Compile F4 with -O2 - as we have the program memory for it
+ Serial3/4/5/6 on F4
+ Serial3 on Olimexino
+ Make Serial.onData() clear onData handler
+
+ 1v13 : Operations like + on Object/Array convert them to strings rather than error
+ var now doesn't error if there is no semi-colon
+ Allow new line or line delete in multi-line editing
+ add edit(functionName) - which copies function definition into inputline so it can be updated
+ When printing lines, delete current inputline and then put it back in idle loop (only if echo=1)
+ Support *,/ etc on numpad
+
+ 1v12 : Issue when printing lots of data and then disconnect USB
+ Hide USB/Serial in Dump()
+ add Array.map(fn(x), thisArg)
+ For newline, count [] and () (as well as {}) - also knows about comments/strings/etc
+ Fix assert fail is setTimeout with non-function
+ If space at end of input line, enter still executes
+ Removed some hard-coded arrays in favour of JsVar strings
+ Fix confusion with jsvIsName/jsvIsString
+ Handle numpad end key
+ Add code to check stack and stop stack overflow if too much recursion
+ Ensure that setTimeout/setWatch store the link to a function, not the function
+ Fix nasty ref loop in ref loop GC issue
+ Add dotty output
+ Fix memory leak when error in jspParseSingleFunction
+ Now run Garbage collection if we're idle, and we know we have a few ms spare
+ Added setSleepIndicator
+ Fix line/col indicator in errors/warnings
+ Fix JSON parsing and printing when 'undefined' encountered
+ Rewritten object handling code to be way more standard JavaScript compliant
+ Array initialisation with 'new Array()', also for Strings
+ Added a few more built in functions
+ Nice error reporting with line + pointer
+ fixed Math.random
+ Binary style ops on doubles now work - they are just converted to ints
+ Added boolean datatype
+
+ 1v11 : Add Math functions
+ Add command history (and dynamic history free if low memory)
+ Fix broken jsvArrayPop
+ Add tests for and fix Array.indexOf
+ In-line editing for commands
+ Fix bug in basicVarEquals for big strings
+ More fixes for low memory conditions
+ Multi-line edit for commands (but no newline or line delete yet)
+ Handle Home, End + reverse delete keys
+ Fix nested for loops not handling interrupts correctly
+ Fix AppendString issue when given start value greater than string
+ Add 'changeInterval' to allow things created with setInterval to have the frequency changed (eg. stepper motor control)
+ Now puts itself to sleep to save power, when it knows nothing is required and it'll be woken up by SysTick before
+ Change Math library to avoid putting constants in RAM
+
+ 1v10 : Increase FIFO size for VL
+ Marginally decrease amount of F4 vars to ensure they all fit in one flash sector
+ Allow strings to be longer than the max token size
+ '"key" in obj' syntax
+ Detect if in FOR or WHILE loop, and if not, disallow break and continue
+ Change min setInterval time to 0.1ms - F4 can get close to this
+ Better analog pin error message
+ USB support on Olimexino/Maple
+ Start of multiple COM port support (ioEvent queue)
+ Ctrl-C now clears the input line
+ Save state of 'echo' into flash with save()
+ Add 'setBusyIndicator(pin)' to set pin high when Espruino is busy
+ Inbuilt function handling speed improvements
+ Allow Serial comms via other UARTS. Serial1/2.onData and print/println
+ now inserts elements into arrays in the correct order (GetLength can be (is) now much faster)
+ Faster code to work out pins from strings
+ Automatically convert IDs in form A#,A##,B#,B## etc into numbers.
+ Built-in constants for LED1/BTN/etc.
+
+ 1v09 : Enabled 'abs' by default
+ Added flash programming to STM32F4
+ analogWrite now working!
+
+ 1v08 : Add preliminary STM32F4 support
+ Allowed test cases to test timers - eg. code in jsinteractive.c
+ Fix memory leak for timer
+ Fix memory leak for digitalWrite
+
+ 1v07 : Fix string charAt
+ Fix watch on different pin
+ Pass arguments to event handlers - eg. time
+ digitalWrite/Read to take arrays of pins, and int for value
+
+ 1v06 : Add break + continue
+ Add switch statement
+ Handle /r, /r/n or just /n for newlines - phone compatible
+ Handle different type of delete
+
+ 1v05 : Allow setWatch/setTimeout/setInterval with a string
+ Handle adding Open bracket then deleting it
+ When calling a NAMED function, zero the scopes - this stops scope table overflow
+
+ 1v04 : Renamed to Espruino
+ Fixed issue with event add when out of memory
+ If out of memory happens during a timer, kill all timers
+