Revamp the speed comparison test.

Focus on parsing with location tracking.
Use the upstream code for the parsers.

https://code.google.com/p/esprima/issues/detail?id=424
Always benchmark with location tracking parsing.

https://code.google.com/p/esprima/issues/detail?id=424
For the benchmark result, show relative mean error instead of variance.

https://code.google.com/p/esprima/issues/detail?id=424
Speed comparison: No need to display the source size.

We need the precious horizontal space.

https://code.google.com/p/esprima/issues/detail?id=424
Use rawgithub.com to load upstream external projects.

https://code.google.com/p/esprima/issues/detail?id=424
A new smoke test: parse all the code in the benchmark corpus.

https://code.google.com/p/esprima/issues/detail?id=425
Ensure the smoke-test library parsing work with the barebone V8 shell.

https://code.google.com/p/esprima/issues/detail?id=425
Simplify skipComment() function.

Just like in V8 and other JavaScript engine, handle single-line and multi-line
comment separately. This avoids building a "mini state-machine" inside
skipComment() function.

This reduces the cyclomatic complexity of skipComment() from 19 to 8.

http://code.google.com/p/esprima/issues/detail?id=396
Vary parsing options in the unit tests to increase code coverage.

http://code.google.com/p/esprima/issues/detail?id=388
Minimize object construction when tracking location.

As suggested by ZHANG Bei <ikarienator@gmail.com>, there is no need for
rich object when tracking the node location. Firefox 20 shows 6% speed-up on
the full benchmarks.

https://code.google.com/p/esprima/issues/detail?id=424
Tolerant mode must accept setters with no parameter

When parsing in tolerant mode, a setter with no parameters no longer
halts parsing but instead adds the 'Unexpected token )' error to the
error list.

https://code.google.com/p/esprima/issues/detail?id=426
Do not use createLocationMarker() unnecessarily.

V8 3.19 shows 11% speed improvement.

https://code.google.com/p/esprima/issues/detail?id=424
Delegate marking should be at the right location.

Whitespaces and comments skipping should be carried out before
calling the syntax tree delegate location marking functions.

https://code.google.com/p/esprima/issues/detail?id=355
Simplify comment collection.

Instead of two separate functions, now skipComment can also collect all
line and block comments, making scanComment() not necessary anymore.

The most cyclomatic function now falls into scanRegExp().

https://code.google.com/p/esprima/issues/detail?id=396
Include changes for 1.0.3.
Check corner cases of Strict Directive.

Ensure that EscapeSequence and LineContinuation are handled correctly.

https://code.google.com/p/esprima/issues/detail?id=427
Get the sources from upstream projects.

https://code.google.com/p/esprima/issues/detail?id=424
Remove location filter for the comment array.

https://code.google.com/p/esprima/issues/detail?id=417
Merge branch 'master' into gh-pages