     1v50 : Fix broken Web IDE caused by change to printing JSON for console.log (part of #206)
            Fix bug when trying to stringify {5:5}
            Allow {1:2} to be parsed (fix #199)
            Added SPI RX IRQ. Caved in and used a few bytes for buffers, made SPI significantly more reliable

     1v49 : Change compiler flags to allow link-time optimisation
            Increase buffer sizes on Linux
            Increase buffer sizes on boards with >= 20kB RAM
            Made Startup banner smaller
            Less printing when loading from flash
            Don't display startup banner if loading from flash (an easy way to fix #213)
            Fix HTTP response code of 0 (fix #212)
            Add timeouts to TI's CC3000 driver
            Add timeouts for SPI, and other timeouts now interrupt execution
            Lower USB interrupt priority, remove pesky PriorityGroupConfig that was breaking other IRQ priorities
            Until we sort out SPI RX and IRQs, lower default SPI baud rate to stop timeouts
            console.log and print output JSON now (part of #206)
            Added handling of query in url.parse - still not fully compatible though (fix #205)

     1v48 : Fix issue where the size of command history is being reported wrong and so process.memory().free is reported wrong too
            We now loop without a seek to position inside the string (much faster if loop is not near the start of a fn) (fix #53)
            Faster string iteration which doesn't involve incrementing it->index
            Swapped to jumptable to lexer (should be a bit faster)
            Added the 'E' class, with getAnalogVRef and getTemperature (fix #60)
            Deprecated Math.clip (not in spec) and introduced E.clip 
            Fixed bug in common.py that meant that ifndefs in JSON were sometimes not obeyed (better mem usage on small chips)
            Fix deep sleep breaking ADCs

     1v47 : Fix issue with dump() and input_pullup not being quoted
            Fix regression that broke OneWire in Espruino Board (#197)
            Fix clock speed issue on SPI1 (https://github.com/espruino/EspruinoDocs/issues/18)
            Don't interrupt on USB ESOF or ERR  - allows 'normal' sleep without interrupting every 1ms (fix #195)
            Remove pointless KickStarter line printed on startup
            Added bootloader hack to Python bootloader

     1v46 : Fix parseFloat("") not returning NaN, and parseFloat(" \t 5 £$%^&(*$") returning NaN
            Added isNaN() function (fix #184)
            Fix parse order for 'typeof' (fix #172)
            Added Number object (fix #165)
            Bounded ftoa (stops crash when printing Number.MAX_VALUE) - helps with #185
            Added Array.isArray() (fix #160)
            Add do...while (fix #151)
            Stop Espruino board from crashing if you try to create a web server without a connected CC3k (fix #182)
            Remove Array.contains as it's not in the spec (use indexOf instead if you need it) (fix #161)
            Fix nasty bug where adding/removing intervals/timeouts while in one could cause issues
            Fix bug when printing 1.999999999 and similar (fix #190)
            Remove need for pow for exponentiation. Not great but it fixes some tests that failed on FP inaccuracies
            Change polarity of setSleepIndicator (fix #194)
            Allow array.push with multiple arguments (fix #189)
            Speed up array access by searching from the end backwards if we think the number is in the last half (fix #46)

     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

