Merge pull request #27 from gabelevi/fb-harmony

Small XJS Ast changes to match ast-types
fix failing Travis build due to 0.10 representing 0.1 in YAML

See https://github.com/ariya/esprima/pull/274#issuecomment-50630052

https://code.google.com/p/esprima/issues/detail?id=317
When consumeSemicolon fails to find a semicolon, don't consume anything.

When a Statement is not terminated by a semicolon, the consumeSemicolon
function terminates the range/loc of the node at the beginning of the next
node, including any whitespace or comments trailing after the Statement
node. Instead, it should revert back to the end of the previous node.

If you look carefully at the test changes included in this commit (all of
which I made by hand), I think you'll agree they make a lot of sense. The
only ones I'm not sure about are the end-of-Program positions: for
instance, the Program location for '\n42\n\n' now only includes the 42,
and not any of the whitespace. This was already true for the starting
position, but now it is also true for the ending position.

This inclusion of trailing comments/whitespace by consumeSemicolon has
been a very long-standing issue that I dealt with in
https://github.com/benjamn/recast using the
[LocationFixer](https://github.com/benjamn/recast/blob/6feb25024c6883bcfa027b95d3b5fa476ac179e9/lib/parser.js#L72-L101)
class (first introduced in September 2012), but I want to stop using that
class for performance reasons, and I've come to realize I can't correctly
fix all cases anyway (I can rewind over whitespace, but not so easily over
comments, without implementing something like unskipComment), so I believe
this logic is better implemented in esprima.js.

https://code.google.com/p/esprima/issues/detail?id=574
Port options.attachComment from master for leading/trailing comments.

https://code.google.com/p/esprima/issues/detail?id=575
Make sure to update lineStart when incrementing lineNumber in scanTemplate.

As a general rule, whenever we increment lineNumber, we need to set
lineStart to the new value of index, so that column computations (index -
lineStart) will be correct.

https://code.google.com/p/esprima/issues/detail?id=576
Also update lineStart after incrementing lineNumber in scanStringLiteral.

https://code.google.com/p/esprima/issues/detail?id=576
Merge remote-tracking branch 'ariya/harmony' into fb-harmony

Conflicts:
	esprima.js
Allow object type annotations to be nullable.
Merge pull request #33 from cpojer/fb-harmony

Allow object type annotations to be nullable.
Fix location info for top-level VoidTypeAnnotations
`\r\n` in JSX text should be considered as one line separator in order to provide correct location information.
5001.0001.0000-dev-harmony-fb
Update version in other places.

Missed in 4b4cdce58ab6ab5feab714fb2db8b8d6b074067b
"\r" in a comment is not a newline

Summary:
"\r" is a line terminator but it shouldn't increase the line number,
unless used as "\r\n".

Test Plan: node test/run.js