August 9, 2012 - Release 1.4.1

  * Added String.matches() [#1886]
  * Fixed canvas not receiving focus [#1883]

July 31, 2012 - Release 1.4.0

  * Added a PJS object inspector [#1867]
  * Added ArrayList.lastIndexOf() [#1837]
  * Added ArrayList.removeAll() [#1001]
  * Added CDATA support to XML [#1788]
  * Added check for IE9 non-HTML5 doctype [#1606]
  * Added online global variable [#1743]
  * Added option to stop ref test suite on failures [#1681]
  * Added PFont cache limits [#1741]
  * Added PImage.get() ref tests [#1601]
  * Added point smoothing in 3D [#602]
  * Added Processing.reload() [#1133]
  * Added shearX() and shearX() to 2D mode [#1640]
  * Added shearX() and shearY() in 3D mode [#1773]
  * Added support for Processing 2.0 XML support [#1806]
  * Added support for variable arguments [#1842]
  * Added tinyLogLite license and author to LICENSE [#1731]
  * Enabled preserveDrawingBuffer when context is acquired [#1651]
  * Fixed array initialization code [#1817]
  * Fixed ArrayList(int) constructor [#1829]
  * Fixed data-processing-sources to seperate files or ids by whitespace, not just spaces [#1818]
  * Fixed handling of namespaces in XMLElement.getChild [#1382]
  * Fixed HashMap iterator.remove() bug [#1871]
  * Fixed I-bar cursor appearing on click-dragging [#1755]
  * Fixed IE9 hanging on exception without debugger [#1789]
  * Fixed init to cache <script> elements [#1740]
  * Fixed lazy loading height calculation [#1846]
  * Fixed naming convention in shaders [#1279]
  * Fixed off-by-one error in arc startLUT calculations [#1802]
  * Fixed overloaded method calls [#1810]
  * Fixed parser to allow $ in names [#1688]
  * Fixed PGraphics initially not transparent [#1813]
  * Fixed PImage.toImageData using cached image data [#1768]
  * Fixed popStyle() setting rectMode() to undefined [#1771]
  * Fixed PShape to work with PGraphics [#1778]
  * Fixed PShape.shape() changing rectMode() and ellipseMode() [#1753]
  * Fixed right-click context menu appearing in 3D sketches [#1779]
  * Fixed splitTokens() to work with special characters [#1799]
  * Fixed textSize() not resetting font metrics [#1687]
  * Removed duplicate curElement assigned code [#1763]
  * Set animated ref tests to run at 1000 FPS [#1830]
  * Unmarked ref tests as known fails due to FF9 JIT bugs [#1700]
  * Updated the generics regexp for array notation [#1812]

October 13, 2011 - Release 1.3.6

  * Fixed arc() not filling the last half degree [#1717]
  * Fixed camera() call order regression in 1.3.5 [#1714]
  * Fixed delay() to throw an unsupported function error [#1724]

October 5, 2011 - Release 1.3.5

  * Added check for canvas in Processing ctor [#1646]
  * Added document.head compatibility for Firefox 3.6 [#1660]
  * Added reference to p instance in onLoad() [#1643]
  * Added text(string, x, y, z) ref tests [#1642]
  * Disabled WebGL anti-aliasing [#1701]
  * Fixed PImage.mask() when passed a PImage created from a PGraphics [#1623]
  * Fixed PImage.toImageData not using cache [#1647]
  * Fixed colorMode not working in 3D [#1670]
  * Fixed copy() without a source argument [#1631]
  * Fixed frustum() not throwing an error in 2D mode [#1693]
  * Fixed get() not returning a copy of a PImage [#1622]
  * Fixed get(x,y) when called on 3D PGraphics [#1630]
  * Fixed getUniformLocation checking for null [#1650]
  * Fixed lights not being applied to textures [#1503]
  * Fixed modelX/Y/Z() failing if camera() was not called first [#1103]
  * Fixed noFill()/noStroke() not working if called before size() [#1417]
  * Fixed pixels not allowed as a variable name in classes [#1674]
  * Fixed pmouseX/Y values during draw() [#1635]
  * Fixed rectMode() not working in 3D [#1656]
  * Fixed textWidth() returning a string instead of a number [#1624]
  * Fixed texture UV coordinates not normalized and clamped with NPOT textures [#1669]
  * Fixed texture() modifying a NPOT PImage passed to it [#1664]
  * Fixed tint() ignoring alpha parameter [#1625]
  * Fixed tint() not marking a PImage as dirty [#1707]
  * Fixed using p as a class member identifier [#1618]
  * Fixed vertical align in textAlign() [#1628]
  * Optimized use of curRectMode and curEllipseMode [#1676]
  * Removed p.Import [#1632]
  * Removed unused inDraw variable [#1641]

August 24, 2011 - Release 1.3.0

  * Added a chart to the perf test suite
  * Added an error message to the ref test builder if 'exit()' is not found in the sketch
  * Added blendColor ref tests
  * Added codePointAt to the String object
  * Added documentation to toP5String function
  * Added equalsIgnoresCase to String object
  * Added error messages to beginCamera and endCamera when used in 2D mode
  * Added error messages to Processing file and I/O functions that are unsupported by Processing.js
  * Added printMatrix unit tests
  * Added resetMatrix unit tests
  * Added rounded rect
  * Added screenWidth and screenHeight variables to match Processing v2.0
  * Added script to build process to replace PConstants.* with their numerical values
  * Added startsWith and endsWith to the String object
  * Added support for external javascript code to add images to the imageCache
  * Added tint perf and ref tests
  * Added toArray() to the Array object
  * Added transparency perf test
  * Changed function(){} to the Processing local variable 'nop'
  * Changed obj.constructor type-checking to typeof(obj)
  * Changed perf tests to use exit()
  * Changed Processing.js errors to throw instead of print to tinylog
  * Converted animated test suite tests to ref tests
  * Converted XMLElement unit tests to use XMLElement.parse(string) instead of XMLElement(string)
  * Fixed crisp not working properly when any transformations were applied to the sketch
  * Fixed CSS font declaration when using SVG fonts
  * Fixed default vertical align in textMode(halign, valign) to BASELINE
  * Fixed equalsIgnoreCase to use toLowerCase rather than RegEx(//i)
  * Fixed fake-dom.js returning the same canvas every time createElement is called
  * Fixed font metrics (textAscent, textDescent, etc.)
  * Fixed font preloading not checking whether a @font-face rule already exists
  * Fixed font preloading to use tinyfont
  * Fixed font quoting bug in computeFontMetrics
  * Fixed HashMap.values() so that it returns an ArrayList
  * Fixed hex literal #FFFFFF not being converted to an int properly
  * Fixed HSB functions ignoring colorMode range in grayscale
  * Fixed httpd.py webserver to be multi-threaded and MSIE compatible
  * Fixed image() not working in 3D mode
  * Fixed lerpColor generating incorrect values in HSB color mode
  * Fixed make release-files creating the temporary file in the wrong directory
  * Fixed mandelbrot.pde and histogram.pde ref tests
  * Fixed MSIE crash when loading from a <script> element
  * Fixed negative color and opacity values returning incorrect results
  * Fixed performance loss when drawing images at fractional co-ordinates
  * Fixed PImage.get not returning valid data
  * Fixed rectMode() regressions caused by @pjs crisp removal
  * Fixed runtests.py to use Unix paths only
  * Fixed screenXYZ.pde unit test
  * Fixed sketch starting before font preloading is done
  * Fixed smooth() and noSmooth() to use new image-rendering modes
  * Fixed SVG loading in Opera
  * Fixed SVG path handling for 'z' and 'Z'
  * Fixed text-width.pde ref test to use the correct font
  * Fixed text$4 and text$6 font alignment
  * Fixed textAlign and textMode not getting saved in pushStyle() and popStyle()
  * Fixed textSize not caching textAscent, textDescent, and textLeading
  * Fixed tint() to work with texture()
  * Fixed vertex() not working with optional parameters
  * Fixed vertical align behaviour
  * Fixed XMLElement.parse when parsing a string with '.svg' or '.xml'
  * Improved the performance of blend modes
  * Improved the performance of blend()
  * Improved the performance of images created with createImage()
  * Improved the performance of PVector
  * Reduced the number of canvas objects the ref test runner creates so that tests pass on Chrome in Windows
  * Refactored forwardTransform and reverseTransform into modelView and modelViewInverse
  * Refactored PFont
  * Refactored point(), line(), and rect() to draw crisp lines
  * Refactored Processing.js to have no else after return or throw
  * Refactored unbinary()
  * Removed @pjs crisp directive
  * Removed color profiles from all images used in our ref test suite
  * Removed comments from the release version of Processing.js
  * Removed reliance on use3DContext variable
  * Removed textMode(SCREEN)
  * Removed unused 'Keys and Keystrokes' variables
  * Removed unused function colorBlendWithAlpha
  * Removed use of .apply(this, arguments)
  * Removed use of parseFloat and parseInt as cast operators
  * Replaced 'new Date().getTime()' with 'Date.now()'
  * Switched back to YUI compressor for this release, as Google Closure was producing buggy code

July 14, 2011 - Release 1.2.3

  * Added a note to the test suite about Opera failing Cursor
  * Added httpd.py to the distribution in order to run a local http server for testing
  * Added Shiffman's "Nature of Code" into parser test suite
  * Added support for hash/bookmark url from sketch loading
  * Added both inline and external loading samples to the example.html example
  * Add JavaScript event hooks to Sketch
  * Changed Processing.logger back to tinyLogLite
  * Changed the script attribute used to target a canvas from data-target to data-processing-target
  * Converted test suite #113 and #114 to ref tests
  * Converted README to README.md
  * Converted ref tests to have proper draw loops with exit() in them
  * Created SVG ref tests
  * Created curve* ref tests.
  * Created more background() ref tests
  * Created makefile documentation
  * Deleted dead code in processing.js
  * Deleted unused variables and functions
  * Expanded test suite configurations for more OS/browser combos
  * Expanded lerp unit test beyond r/g/b
  * Fixed ArrayList's copy constructor
  * Fixed processing.js header to include type of distribution
  * Fixed processing-helper to work when creating 3D tests after 2D tests
  * Fixed 3D points to take strokeWeight() into account
  * Fixed exit() to properly release events that are bound to sketches
  * Fixed split() so it doesn't scope-conflict with objects that implement their own split function
  * Fixed Test suite blur test to properly load second image
  * Fixed ref test runner so it can re-run without reloading the page
  * Fixed parser so that all classes in a deep class hierarchy get a $base
  * Fixed ref test runner to use epsilonOverride global value when higher than test-specified value
  * Fixed failing ref tests due to pixel diff errors
  * Fixed build system to run make check-lint as part of make check
  * Fixed test suite #56 alpha mask on IE9 and Opera
  * Fixed processing helper preloading in Firefox 4
  * Fixed ref tests that use text
  * Fixed event handler leaks processing.js
  * Fixed error messages when local files cannot be loaded
  * Fixed ref test runner to properly diff images
  * Fixed ref test runner to properly sort completed tests
  * Fixed test suite and ref test runner to use minified vs. full processing.js in test suite
  * Fixed Makefile to be Windows-friendly
  * Fixed @pjs directives to work when multiple directives are specified
  * Fixed build system to add version number and header to minified processing.js
  * Fixed build system so that release target triggers check-release automatically
  * Fixed example.html to use size() instead of canvas width/height
  * Fixed regression from #1363
  * Fixed SVG path "m" statement regression
  * Fixed loadImage() reference to not mention signing applets
  * Fixed SVG regression from failed merge
  * Fixed loadShape()
  * Fixed Makefile so that check-closure does not die mid-way
  * Fixed PVector.set to not set z to undefined (NaN)
  * Fixed is3D regex in ref tester
  * Fixed case-sensitivity in ref test SVG filenames and associated tests
  * Implemented fillStyle
  * Implemented __hashCode function via virtHashCode
  * Investigated the suitability of implementing the A3D Renderer
  * Moved the utility functions (extendClassChain, defineProperty, ...) to defaultScope
  * Refactored rotateZ into 2D and 3D methods
  * Refactored mag() to use function args
  * Refactored vertex() to use function args
  * Refactored line() to use function args
  * Removed fixOperaCreateImageData()
  * Removed fixOperaCreateImageData() in ref test runner
  * Removed delay() from Reference
  * Removed init and loadSketchFromSources from the api version of pjs
  * Removed init.js from repo and /download
  * Removed uses of eval("...")
  * Removed impossible parser tests
  * Removed duplicate loadSketchFromSources and disableInit
  * Removed nop and eval_ from the global closure arg list
  * Removed @pjs transparency directive
  * Restored feature to load inline sketches after accidental deletion
  * Rewrote beginDraw and endDraw comments to better explain their presence

June 2, 2011 - Release 1.2.1

  * Fixed background() when called with 3 arguments
  * Fixed use @pjs transparent directive
  * Updates to build system for testing, release

May 26, 2011 - Release 1.2

  * Aligned default frameRate to match Processing (e.g., 60fps). NOTE: if your
    sketch seems slower than before, frameRate(1000) will yield the old behaviour.
  * Added Performance Tests
  * Added lazy loading sketch extension
  * Added XMLElement toString() function
  * Added loadShape() testing
  * Added support for Java Generics
  * Added ArrayList addAll()
  * Fixed stroke being applied in endShape()
  * Fixed the key variable to hold the proper data type
  * Fixed string functions split(), contains()
  * Fixed background() when called with image different size from sketch
  * Fixed IE9 loading issues
  * Fixed mouseX/mouseY to be computed with canvas scaling taken into account
  * Fixed text string's height to not ignore textLeading()
  * Fixed copy() to handle transparency
  * Fixed ellipse 3D to take noStroke and noFill values into account
  * Fixed regression in specular() defaults to be same as 1.1.0
  * Fixed screenX()
  * Fixed arc() 3D fill
  * Fixed endShape(CLOSE) so the shape doesn't disappear
  * Fix for 3D PGraphics always drawing below 2D shapes
  * Fixed noStroke() on P3D endShape()
  * Fixed 3D ref tests
  * Fixed rect() for 3D when used with lights
  * Fixed param()
  * Fixed leak of global typed array variables
  * Fixed rendering of println() so it's more usable
  * Fixed Scaling/Light problem in 3D
  * Fixed reverseTransform()
  * Fixed line(x,y,x,y) so that it draws a point
  * Fixed Processing constructor to take a single argument
  * Fixed Iterator for Map's EntrySet to iterate through the entire set
  * Fixed dir vector transforms in directionalLight() and spotLight()
  * Fixed arrayList remove() to take an object argument
  * Fixed light/shadowing failures in ref tests for 3D
  * Fixed strokeWeight to not get reset in draw()
  * Fixed image cache to set loaded property for images inserted from js
  * Fixed parser bug with negative values
  * Fixed parser bug with static variables
  * Fixed textWidth to work with newlines
  * Fixed beginShape() and endShape() to work with bezierVertex()
  * Fixed arc() when covering 0 radians
  * Fixed unit tests that caused UTF-8 errors in newer JSSHELL
  * Fixed linting errors
  * Fixed arc() regressions
  * Fixed XML API to be Processing 1.5 compatible
  * Fixed subset(array, offset) bug
  * Converted all XMLElement tests to unit tests
  * Converted endShape() ref tests to be part of the regular 2D/3D ref tests
  * Documented rotate() to explain direction
  * Documentation fixes and corrections on website
  * Improved minification
  * Improved the performance of arc()
  * Improved the performance of blur()
  * Improve the performance of blend()'s ADD mode
  * Implemented ArrayList indexOf()
  * Improve the performance and output of ref tests
  * Improved compatibility of WebGL context creation
  * Moved colors object out of Processing instances to save memory
  * Reduced calls to uniformMatrix()
  * Removed test/unit/braces.js
  * Removed clear()
  * Removed transform matrix calculations if there are no lights
  * Removed dependancy on init.js, and init.js from examples
  * Removed all uses of use3DContext from compiled sketches
  * Rewrote build system, switched to closure
  * Removed Bespin IDE
  * Removed unused tools and minifies
  * Removed uses of constructor.name
  * Renamed internal uses of int(), boolean(), etc. to parseInt(), parseBoolean(), etc
  * Updated README, LICENSE, AUTHORS, CHANGELOG

March 29, 2011 - Release 1.1.1

  * Add known failures to ref tests 
  * Convert test-suite tests to REF tests 
  * Fixed inheritance for certain (js object) methods still broken (1.1)
  * Fixed more extra semi-colon breaking 
  * Fixed createImage for RGB format produces image with transparent background 
  * Removed String.prototype.match and .replace in IE9 
  * Removed static beginCamera/endCamera examples from repo 
  * Re-factor 3D and 2D drawing functions into separate objects 
  
March 1, 2011 - Release 1.1

  * Added mouseover, mouseout events
  * Added parseBoolean()
  * Added make file option to create an API only version of processing.js
  * Added webkit touch events natively in pjs
  * Added custom pjs packager for pre-parsed code
  * Added Java for each loop is now supported
  * Fixed PJS defaults not matching P5 where reasonable
  * Fixed 3D demos broken on systems running OSX 10.6 using nVidia cards
  * Fixed key event filtering per sketch (multi-sketch page setup)
  * Fixed xmlElementRemoveAttribute test failing
  * Fixed XMLElement.parseChildrenRecursive
  * Fixed XMLElement constructor returning this
  * Fixed OO bug with classes
  * Fixed Processing instances not always being added to Processing.instances
  * Fixed P3D not respecting noFill()
  * Fixed ref test runner broken on IE9
  * Fixed ajax() should be asynchronous
  * Fixed XMLElement.getChildren(path) not returning all the children
  * Fixed inheriting from ArrayList failing
  * Fixed toImageData() scope issue
  * Fixed ArrayList contains() not checking equality (1.0)
  * Fixed shaders being broken with new restrictions on non-constant loops
  * Fixed Ref test creation problem with WebGL
  * Fixed parsing problem with the ternary operator and the pixel array
  * Fixed box vertices and comments not being congruent
  * Fixed loop() going relatively mad after a noLoop() and more than 0 second wait
  * Fixed Minefield from reporting syntax error on first line
  * Fixed text() function width and height restrictions being unreliable
  * Fixed unexpected result when converting char() to str()
  * Fixed jsshell tests to use snarf() instead of munging strings
  * Fixed pollution of object prototypes
  * Fixed static methods not working
  * Updated the way document focus is checked at the start of every frame redraw (1.0)
  * Updated fake-dom.js to support xhr.overrideMimeType
  * Updated PShape to use prototypes
  * Updated numerous website reference pages
  * Removed pimagefilter.pde, and filter.pde files from unit tests

November 17, 2010 - Release 1.0

  * Added source level documentation for functions
  * Added reference pages for missing language features
  * Added sketchpad.cc to list of dev tools
  * Added saveFrame()
  * Added remaining PImage features
  * Added compile-time optimizations for constants, functions, closures
  * Added PShapeSVG(new XMLElemnt(svg string))
  * Added check for missing use of 'new' to Processing() calls
  * Added test for casting and negative ints
  * Added cursor URL example to test suite
  * Added Makefile target for examples packaging
  * Created wiki for processingjs.org
  * Created quick start guides for Processing and JavaScript developers
  * Fixed keyReleased so it doesn't fire when key is held down
  * Fixed neighborhood.html
  * Fixed translate() call ordering with background()
  * Fixed issue with loadStrings() so it doesn't remove last character
  * Fixed matrix operations run in setup such that they are not reset in draw
  * Fixed remaining KNOWN-FAILURES that were fixable
  * Fixed performance issue with Image() function when mask and tint aren't specified
  * Fixed performance issue with text$line
  * Fixed SVG <rect> to work properly with negative widths
  * Fixed PShapeSVG/PShape to be public
  * Fixes to allow WebKit to load 3D sketches
  * Fixed PImage.mask to work with objects generated by PGraphics.get
  * Fixes to support IE9
  * Fixed parser to accept additional float literal formats
  * Fixed performance issue with ArrayList
  * Fixed issue with abstract methods
  * Fixed text 3D error
  * Fixed mouseX/mouseY values to take scrollbars into account
  * Fixed parser bug with discarded processing methods
  * Fixed performance issue with uniformMatrix and vertexAttributePointer
  * Fixed (int) casting
  * Fixed non-power-of-two texture load issue
  * Fixed all non-power-of-two images in source tree
  * Fixed text-width example in Firefox and Ubuntu
  * Fixed method invocation using this and super
  * Fixed js linting issues
  * Fixed ref test runner for Uint8Array
  * Fixed Learning IDE frame rate bug
  * Removed .svn dirs from source tree
  * Updated fake-dom.js for curContext.setTransform
  * Updated processingjs.org (many fixes, corrections)
  * Updated documentation for loadImage, requestImage, @pjs preloading

August 13, 2010 - Release 0.9.7

  * Added saveStrings() 
  * Added textMode()
  * Added 3D implementation to image()
  * Added 3D implementation to PImage 
  * Added loadStrings() 
  * Added textAscent() 
  * Added textDescent()
  * Added createFont / loadFont and PDE "development environment" 
  * Added parser test coverage to 55% 
  * Added PConstants parser optimization
  * Added PVector constructor optimization 
  * Added PShapeSVG::parseMatrix 
  * Fixed SVG single path cutout not rendering correctly 
  * Fixed SVG color strings object
  * Fixed SVG parsePoly Chrome bug
  * Fixed SVG parsePath 
  * Fixed PImage.mask doesnt work given an object generated by PGraphics.get
  * Fixed PImage functions to check this.isRemote
  * Fixed 3D Lights  
  * Fixed make-check errors does not print array braces
  * Fixed Chrome 3D rect error 
  * Fixed vertex 2D inline shape stroke and fill color 
  * Fixed background in draw doesn't redraw 3d 
  * Fixed Canvas not being painted when inside div 
  * Fixed readPixels call for "ref test" 
  * Fixed web color parsing behavior
  * Fixed XMLElement type doesn't support one parameter string ctor 
  * Fixed tickle example is crashing using opera 10.53 on windows 7 
  * Fixed shaders so they pass shader validation 
  * Fixed frameRate() not changable outside of setup() 
  * Fixed Paser fails silently when keywords aren't in global member array 
  * Fixed Parser test speed on new parser's generated constructors
  * Fixed Parser bug: in-class default scope is not "this" but the DOM window
  * Change name of opaque pjs directive to "transparent" transparency "transparent background" 
  * Removed newWebGLArray wrapper 
  * Removed unsupported symbols
  * Created JS only example documentation example 
  
July 23, 2010 - Release 0.9.6

  * Added PConstants Object
  * Added PShape
  * Added hint() - 3D
  * Added ArrayList add(int index, Object value)
  * Added ArrayList set(index, value) 
  * Added shape()
  * Added shapeMode() 
  * Added loadShape()
  * Added createGraphics() 3D support
  * Added transparent backgrounds 3D support
  * Added transparency directive to fix Moving On Curves example
  * Added "IMAGE" to the global members array 
  * Added createFont()
  * Added size() default width and height
  * Added textAlign() 
  * Added pause-on-blur/focus for draw() and @pjs directive to reduce cpu usage 
  * Added textWidth() 3D
  * Fixed tinylogLite so it doesn't slows down frame rate 
  * Fixed ajax() to check whether the data request was successful 
  * Fixed point does not render after text() 
  * Fixed ref tests broken on file:/// uri 
  * Fixed 2D ref tests
  * Fixed p.splice  
  * Fixed exit() to remove the instance from the "Processing.instances" 
  * Fixed loading remote images security errors
  * Fixed extra argument bug for a parseFloat line
  * Fixed use of .moz* attributes 
  * Fixed p.arrayCopy()
  * Fixed smooth and noSmooth
  * Fixed strokeWeight for 2d point
  * Fixed keyCode is not defined parser error
  * Fixed parser errors when semicolon is missed 
  * Fixed parser bug on cast with space: (type) (something) 
  * Remove all occurances of typeof obj === 'undefined'
  * Optimized performance by removing recursive calls when possible 
  * Optimized p.expand()
  * Optimized p.parse(), introduce p.compile() 
  * Updated ref test runner for 3D tests 
  * Removed unnecessary whitespace from processing.js 
  
June 16, 2010 - Release 0.9.4

  * Added ellipse() 3D 
  * Added curvevertex() 3D 
  * Added curve() 3D 
  * Added rect() 3D 
  * Added bezier() 3D 
  * Added bezierVertex() 3D 
  * Added text() 3D
  * Added curveDetail() 
  * Added bezierDetail() 
  * Added strokeWeight() and point() 
  * Added filter() 
  * Added PImage: filter prototype "pimage filter" 
  * Added PImage: save prototype "pimage save"
  * Added PImage 0 argument constructor 
  * Added filter MODEs for p.filter() and PImage.filter() 
  * Added textureMode() 
  * Added texture() 
  * Added texture support 
  * Added ArrayList.toArray 
  * Added save() 
  * Added XMLElement type 
  * Added textWidth()
  * Added status()
  * Added a new lightweight parser
  * Added unit tests for new parser
  * Added a .version property 
  * Added unit test for binary()
  * Added support for getting a reference to a Processing object "processing reference" 
  * Added key/keyCode argument for keyReleased 
  * Added call to draw() in setup if translate is called
  * Added file:/// uri support for running ref tests 
  * Added crisp @pjs directive for crisp lines and points  
  * Added a test coverage tool that provides simple way to check code coverage during unit/parser testing
  * Fixed pimage.get(x,y,w,h)
  * Fixed p.set() performance to increase speed
  * Fixed text() performance by removing unnecessary type conversions 
  * Fixed p.text accepts null input, this causes an error 
  * Fixed binary() to support all primitive datatypes including arrays 
  * Fixed unbinary() to support all primitive datatypes including arrays
  * Fixed unhex() to support all primitive datatypes including arrays 
  * Fixed shaders to take in color attribute for individual vertices 
  * Fixed loadFont() to handle font with spaces in name 
  * Fixed mouseX/mouseY are not computed with style.border taken into account 
  * Fixed "p.mousePressed is not a function" error when clicking on a canvas that did not define it 
  * Fixed mousePressed fails when mousePressed() is defined 
  * Fixed keyCode is undefined in sketches
  * Fixed p.color - optimizations  
  * Fixed parser to handle sketch code pixels = new color[] 
  * Fixed parser so that vars which conflict with function names use constant naming convention 
  * Fixed parser to allow "Code" in a single line comment
  * Fixed parser inheritance problems with variables 
  * Fixed Processing.debug 
  * Fixed PImage examples with Frame Rate
  * Fixed all functions that rely on p.vertex 
  * Fixed Chrome error for Win that appeared when image() was used chrome 
  * Fixed functions to allow Chromium to render 3D sketches
  * Fixed Reference test script 
  * Fixed init.js fails to load sketch into targetted canvas
  * Removed dead code: Point
  
May 20, 2010 - Release 0.9.1

  * Remove with(p) for performance gain
  
May 8, 2010 - Release 0.9.0

  * Added quad() 3D 
  * Added triangle() 3D 
  * Added endShape() 3D 
  * Added beginShape() 3D 
  * Added vertex() 3D 
  * Added more 3D ref tests 
  * Added imageMode() 
  * Added PMatrix2D::mult() 
  * Added PMatrix2D::scale() 
  * Added PMatrix2D::preApply() 
  * Added PMatrix2D::invert(
  * Added PMatrix2D::rotate() and PMatrix2D::rotateZ() 
  * Added PMatrix2D::translate()
  * Added PMatrix2D::determinant()
  * Added PMatrix2D::multY() 
  * Added PMatrix2D::multX() 
  * Added PMatrix2D::transpose() 
  * Added P2D constant 
  * Added QUARTER_PI constant 
  * Added interface keyword support 
  * Added screenZ()
  * Added screenX()
  * Added screenY()
  * Added HSB colour in addition to RGB color color.tostring
  * Added randomSeed() 
  * Added bezierVertex() 
  * Added remaining missing constants from PConstants 
  * Added PImage support for cursor()
  * Added pjs directive to include multiple processing files 
  * Added hue() 
  * Added brightness() 
  * Added saturation() 
  * Added PImage: prototype for set "pimage set" 
  * Added sketch.processing.org code in our tree 
  * Added color.toHSB( colorInt ) 
  * Added mousewheel support for Minefield 
  * Added parser static keyword  support
  * Added parser Support minified processing code
  * Added data-processing-sources support
  * Fixed parser to handle local parameter names same as public variable names
  * Fixed parsing of whitespace between constructor and () 
  * Fixed parsing of function parameter newlines
  * Fixed parser to handle functions and constructors with the same name 
  * Fixed parser to allow Returning array of floats 
  * Fixed parser to allow functions before constructors
  * Fixed Parser: Calculate upper values in for loops only once
  * Fixed parser to allow Static variables 
  * Fixed parser to allow Inheritance
  * Fixed p.background() called with no arguments[0] 
  * Fixed noStroke() for lines 
  * Fixed make release on Windows 
  * Fixed public ctors for parser
  * Fixed empty draw() call clears background 
  * Fixed noise()
  * Fixed random()
  * Fixed "p is undefined" errors in bespin ide 
  * Fixed ImageData objects can't be literals, must use createImageData "cross browser" 
  * Fixed class functions being repeated in the parsed 
  * Fixed code in pimage.toDataURL() to use bit shifting 
  * Fixed p.ArrayList to work for more than 3 dimensions 
  * Fixed Multi-line comments with size() call break library parser 
  * Fix make check-lint env var 
  * Fixed Commented size() call for 3D context breaks lib 
  * Fixed Events continue to get processed after exit() is called
  * Fixed p.point to not use .slice.split with strokeStyle 
  * Fixed Processing.js class functions not use with() 
  * Fixed keyTyped()
  * Fixed lerpColor()
  * Ensured p.set(x,y,c) fully tested after color() changes 
  * Final Linting for v0.9.0 Release 
  * Remove jsbeautify from release target 
  * Fixed PImage pixel array to use ImageData object
  * Transform pixel[n] to pixel(n) 
  * Remove buildImageObject and getImage
  * Cleaned up curveVertex.htm example 
  * Get rid of with(p) in p.init
  * Optimized p.redraw()

April 8, 2010 - Release 0.8.0

  * Added spotLight
  * Added createImage
  * Added PImage blend prototype
  * Added PImage resize prototype
  * Added PImage copy prototype
  * Added @pjs directive for moz-opaque
  * Added copy
  * Added noTint
  * Added shininess
  * Added blend
  * Added lightSpecular
  * Added specular
  * Added ambient
  * Added emissive
  * Added PMatrix2DStack, and associated methods
  * Added lights
  * Added lightFalloff
  * Added printMatrix
  * Fixed canvas size change issue
  * Fixed image clipping logic
  * Fixed cursor to use PImage
  * Fixed performance and accuracy of color
  * Fixed smooth and noSmooth
  * Fixed default framerate to match Processing (60fps)
  * Fixed Math functions for performance
  * Fixed tint
  * Fixed parser to better handle custom classes (still known issues)
  * Fixed array.remove
  * Fixed style, linting issues in processing.js source
  * Fixed OOM parser error in matchAll
  * Fixed release target to auto-write version numbers in release files
  * Fixed background to throw if image size is not same as canvas
  * Fixed Boolean array bug
  * Fixed pmouseX and pmouseY
  * Fixed mouse offset bug when canvas in relative html elements
  * Fixed p.color.toGLArray
  * Fixed typo in mouseScrolled
  * Fixed p.set to support PImage and new color code
  * Fixed year
  * Fixed parser bug with Windows newlines
  * Fixed stroke and fill for performance
  * Fixed drawing of transparent pixels to canvas
  * Converted visual tests to unit and/or ref tests
  * Updated _checkThrows for false case
  * Updated ref tests to use better initial values, added calibration tests
  * Removed dead code
  * Added manual test tracking system

March 25, 2010 - Release 0.7.1

  * Fixed mouseScrolled event failure

March 24, 2010 - Release 0.7.0

  * Added custom @pjs directive parser
  * Added endCamera()
  * Added beginCamera()
  * Added custom mouseScrolled event
  * Added requestImage()
  * Added byte()
  * Added split()
  * Added PImage
  * Added String.toCharArray()
  * Added long data type
  * Added ArrayList.contains()
  * Added curveVertex() 3D
  * Added dist() 3D
  * Added curve() 3D
  * Added ambientLight()
  * Added curveDetail()
  * Added createImage()
  * Added noLights()
  * Added loadImage() preloading
  * Added directionalLight
  * Added Hashmap
  * Added loadBytes()
  * Added pointLight()
  * Added text()
  * Fixed date()
  * Fixed month()
  * Fixed failing PMatrix3D tests
  * Fixed _checkEquals() to add epsilon value
  * Fixed String.prototype.equals
  * Fixed background() for PImage support
  * Fixed image() for PImage support
  * Fixed set() for PImage support
  * Fixed parser test runner bug
  * Fixed parsing of tab characters
  * Fixed parsing of array declarations with spaces
  * Fixed parsing of multiple catch blocks
  * Fixed get() for PImage support
  * Fixed Char to properly distinguish Char from numbers/strings
  * Fixed Rhino parsing of processing.js
  * Fixed parser/unit tests to work on Windows
  * Fixed arrayCopy()
  * Fixed box()
  * Fixed min(), max() error handling for invalid arguments
  * Fixed bug in seneca/hex example
  * Fixed background() 3D when called outside of draw()
  * Fixed link() to respect target
  * Removed invalid tests
  * Switched from Packer to YUI Compressor
  * Build system improvements for release, testing
  * Added Automated Ref Tests

February 26, 2010 - Release 0.6.0

  * Added ellipseMode support ellipse 
  * Added a way to specify tests that are known to fail 
  * Added applyMatrix()
  * Added float() suppose to work on all primitive datatypes including arrays
  * Added char() suppose to work on all primitive datatypes including arrays
  * Added str() suppose to work on all primitive datatypes including arrays
  * Added normal() 
  * Added modelZ()
  * Added modelX() 
  * Added modelY() 
  * Added sphere()
  * Added sphereDetail() 
  * Added scale() 
  * Added line() - 3D  
  * Added fill() - 3D 
  * Added noFill() - 3D
  * Added noStroke() - 3D 
  * Added stroke() - 3D 
  * Added PMatrix3D - remaining functions 
  * Added P3D support 
  * Added tinylog for println() println 
  * Added automated tests: string parsing
  * Fixed loadImage()to work in Opera
  * Fixed fake-dom to work with println and tinylog 
  * Fixed KNOWN-FAILURES for tinylog parsing
  * Fixed and updated the AUTHORS log
  * Fixed Parse Error: Does not like strings in the format "test test, test test, ..." 
  * Fixed Rename zip file for make release 
  * Fixed keyCodes for numbered keys return same values as some letter keys 
  * Fixed Test harness _checkEqual does not compare "undefined" 
  * Fixed automated tests: make check-one path not resolving 
  * Fixed Example: examples/basic.displaying.html incorrect source code "loadimage example bug"
  * Setup an OpenGrok instance infrastructure 

February 12, 2010 - Release 0.5.0

  * Added acos()
  * Added asin()
  * Added atan()
  * Added automated tests for parser
  * Added bezierTangent()
  * Added binary()
  * Added box()
  * Added camera()
  * Added constants MAX_FLOAT, MIN_FLOAT, MAX_INT, MIN_INT
  * Added curve()
  * Added exp()
  * Added frustum()
  * Added hex()
  * Added join()
  * Added log()
  * Added ortho()
  * Added perspective()
  * Added PMatrix3D
  * Added printProjection
  * Added project packaging automation infrastructure
  * Added nf()
  * Added rotateX()
  * Added rotateY()
  * Added rotateZ()
  * Added sort()
  * Added support for Processing based unit tests
  * Added tan()
  * Added trim()
  * Added uniformf()
  * Added uniformi()
  * Added uniformMatrix()
  * Added vertexAttribPointer()
  * Added 3D Matrix Stack Object
  * Added "str1".equals("str2") function
  * Fixed array handling of int()
  * Fixed automated tests to work for large numbers of files
  * Fixed buildImageObject()
  * Fixed char c = '#;'
  * Fixed context menu blocking to be explicitly requested
  * Fixed curveVertex()
  * Fixed data-src
  * Fixed duplicate function errors and reserved keywords
  * Fixed import()
  * Fixed inconsistent mouse event semantics
  * Fixed keyCode RIGHT
  * Fixed last p.keyCode not to fire for every keyPress
  * Fixed min() and max() functions to take more than two arguments
  * Fixed noLoop() & loop()
  * Fixed parser whitespace bug in variable names
  * Fixed parsing of Java import statement
  * Fixed parsing of String content
  * Fixed rotate()
  * Fixed size() for 3D
  * Fixed Test harness _checkEqual to compare arrays
  * Fixed Test harness _checkEqual to compare NaN
  * Fixed test reporting for summary case
  * Fixed text(); added cross browser support, added primitive datatypes support
  * Tested parser for processing larger code samples

January 31, 2010 - Release 0.4.0

  * added map()
  * added fill()
  * added reverse()
  * added matchAll()
  * added blendColor()
  * added split()
  * added subset()
  * added splice()
  * added concat()
  * added unbinary()
  * added online()
  * added mag()
  * added hue()
  * added saturation()
  * added brightness()
  * added splitTokens()
  * added append()
  * added match()
  * added unhex()
  * added PVector()
  * added nfs
  * added shorten()
  * added nfp()
  * added focused
  * added strokeCap()
  * added nfc()
  * added cursor ( mode ) definitions
  * added strokeJoin()
  * added bezierPoint()
  * added popStyle()
  * added boolean()
  * added screen()
  * added noCursor()
  * added curveTangent()
  * added pushStyle()
  * added curvePoint()
  * added frameRate()
  * added size() for 3D
  * added background() for 3D
  * added release automation
  * added automated parser and unit tests
  * fixed JSLint validation
  * fixed Pvector
  * fixed parser bugs
  * fixed nf() (Infinite loop)
  * fixed functions that return arrays
