* root ast
* updated grammar
* preserve CoffeeScript.nodes() API
* root ast methods
* updates from code review
* Style
* Fix a few missing returns
* Expand sourceType explanation
* Simplify
* Refactor Block.astProperties: use expression.astLocationData() to get location data, rather than extracting it from the whole AST object; move all the logic into one function, rather than spreading it out across several functions on the Block class that all appear to be internal
* testing root location data
* Fix location end data for root/File » Program AST node
* op ast
* test expected errors
* use new ast methods
* remove unused abstraction
* logical ?
* fix rebase
* follow convention
* fixes from code review
* test helper naming
* always convert new to Call
* new cases
* don't mutate locationData
* include range in location data
* use exclusive ranges
* ast generation hooks
* fix getAstChildren()
* babylon -
* isArray -> Array.isArray
* pass options to toJSON()
* default astType on Base
* using exclusive range
* extract location data tests
* babylon -> ast
* remove do ->
* _toAst -> getAstContent
* Pass through parsed number value from lexer to node; don't process more than is necessary (a number literal can never be negative, because the negative sign is an Op token and node)
* normalize NumberLiteral values
* use parsedValue in getNumberValue()
* recursive getNumberValue()
* parseNumber()
* The core JavaScript Number constructor does a better job at parsing strings into numbers than our helper does
* Use Object.assign rather than merge or extend
* Update link
* Cleanup style
* Refactor to make AST generation more object-oriented: have each of the AST properties be generated on the node itself, rather than in loops in the base class
* Untangle test helpers: give the AST location tests their own specific helper function, and move the general AST helper functions into the main AST tests file
* Not passing o
* Add node type check to AST location data tests