Shuffle the code in parseSourceElement() function.

This gives the function a complete code coverage. Beside, source element
is likely started with a keyword token.

http://code.google.com/p/esprima/issues/detail?id=221
Add a test case for using future reserved word as function name.

http://code.google.com/p/esprima/issues/detail?id=221
Add test cases for reserved words as function argument name.

http://code.google.com/p/esprima/issues/detail?id=221
Split code generator from esprima core

The code generator project can be found at:
https://github.com/Constellation/escodegen.

http://code.google.com/p/esprima/issues/detail?id=206
Import escodegen for the Source Rewrite demo.

Because the code generator is splitted into its own project, we need to
import it as a third-party code so that the demo still works.

This is taken from https://github.com/Constellation/escodegen
revision 00834b5c8b (dated Mar 8).

http://code.google.com/p/esprima/issues/detail?id=206
Shuffle the code in wrapTrackingFunction() function.

This gives a better code coverage. Beside, it's very rare the returned
node is actually undefined.

http://code.google.com/p/esprima/issues/detail?id=221
Add a test case for continue statement with a semicolon.

This gives a full coverage for parseContinueStatement() function.

http://code.google.com/p/esprima/issues/detail?id=221
Add a test case for do while ended with a semicolon.

This completes the code coverage for parseDoWhileStatement() function.

http://code.google.com/p/esprima/issues/detail?id=221
Fix wrong location info when comments are present.

Aggressive optimization of incrementing the index without taking the
character with nextChar() leads to misleading position.

Also, line terminator inside a block comment needs a special treatment.

http://code.google.com/p/esprima/issues/detail?id=225
Vary parsing options while testing for invalid syntax.

This gives the same code coverage for paired function like skipComment()
and scanComment().

http://code.google.com/p/esprima/issues/detail?id=221
Reorganize binary node tracking routines.

Shuffling the code in wrapTrackingFunction() function to make it simpler
to follow. This also gives it a full code coverage.

http://code.google.com/p/esprima/issues/detail?id=221
Remove source modification feature.

It lives now at Esmorph project: https://github.com/ariya/esmorph.

http://code.google.com/p/esprima/issues/detail?id=163
Import Esmorph code for the Function Trace demo.

Because the source modifier is splitted into its own project, we need
to import it as a third-party code so that the demo still works.

This is taken from https://github.com/ariya/morph revision 874d2e50b7
(dated Mar 13).

http://code.google.com/p/esprima/issues/detail?id=163
Tolerant mode: ignore return not within a function

http://code.google.com/p/esprima/issues/detail?id=226
Simplify nextChar() function with increment operator.

http://code.google.com/p/esprima/issues/detail?id=217
Do not use Object.freeze for various hash tables.

As found out by Yusuke Suzuki, Object.freeze does not improve the
performance. We will revisit this once in the future it does actually
help.

http://code.google.com/p/esprima/issues/detail?id=227
Tolerant mode: ignore with restriction

http://code.google.com/p/esprima/issues/detail?id=230
Preserve line terminators in block comments

Issue: http://code.google.com/p/esprima/issues/detail?id=231
Merge remote-tracking branch 'joostwim/block-comment-preserve'
Mention github.com/Yoric/Marv-the-Tinker.