Speed comparison test: update parse-js to UglifyJS 1.3.0.

http://code.google.com/p/esprima/issues/detail?id=272
Merge branch 'master' of https://github.com/ariya/esprima into harmony
Report early ReferenceError on LHS

http://code.google.com/p/esprima/issues/detail?id=81
Remove NewExpression from LeftHandSide Expression
Merge remote-tracking branch 'Constellation/harmony-early-error' into harmony
Add Harmony module transpiling support.

This is using Harmonizr, taken from the repository at revision 6cd7fd61
(dated Jun 6 2012). The file is transpiled using Harmonizr itself to the
standard module pattern.

http://code.google.com/p/esprima/issues/detail?id=282
Update Harmonizr.

This is now using revision a8fd056a (dated Jun 15, 2012).

http://code.google.com/p/esprima/issues/detail?id=282
Remove sealed literal

http://code.google.com/p/esprima/issues/detail?id=208
Remove ProtoExpression

http://code.google.com/p/esprima/issues/detail?id=273
Remove feature that [[Call]] can return Reference

http://code.google.com/p/esprima/issues/detail?id=81
Harmony: Destructuring Assignment is only allowed when operator is '-'

http://code.google.com/p/esprima/issues/detail?id=284
ES6: "module" keyword conflict

module was not (and is still not) a keyword. Making it a keyword conflicts with existing code, particularly with CommonJS module variable. Consider an expression

  module.exports = Foo;

This was (and AFIU still is) a valid expression. Parser should be able to discern between an expression using module as an Identifier and a module declaration that uses module as a Keyword.

This diff makes the parser more intelligent, though somewhat less effective when parsing expression with module.
"module identifier ..." is considered a module declaration, while everything else is considered as a statement

Updated tests. Removed a newline check, since

  module
  x = y

is a perfectly valid piece of code: variable module followed by an assignment.

http://code.google.com/p/esprima/issues/detail?id=280
ES6: Support ArrowFunction

http://code.google.com/p/esprima/issues/detail?id=269
ES6: SwitchCase accept declarations

http://code.google.com/p/esprima/issues/detail?id=288
ES6: Support YieldExpression

http://code.google.com/p/esprima/issues/detail?id=285
ES6: Support Generator

http://code.google.com/p/esprima/issues/detail?id=287
Restrict missing yield in generator

http://code.google.com/p/esprima/issues/detail?id=287
ES6: Accept empty parameter ArrowFunction

http://code.google.com/p/esprima/issues/detail?id=294
ES6: maximally_minimal_classes support

Implementation of http://wiki.ecmascript.org/doku.php?id=strawman:maximally_minimal_classes&s=classes

Implement a minimal subset of the classes syntax. It looks like this minimal syntax will make it into spec (http://wiki.ecmascript.org/doku.php?id=strawman:maximally_minimal_classes) While the larger one (http://wiki.ecmascript.org/doku.php?id=harmony:classes) is still being actively debated upon.

Support for ClassExpression

See http://wiki.ecmascript.org/doku.php?id=harmony:proposals

Adding parsing routines as well as tests and location support

http://code.google.com/p/esprima/issues/detail?id=279
Removed unused function.

This was unintentionally left during the squashed merging.

http://code.google.com/p/esprima/issues/detail?id=279