Close GH-472: Refactor ProgramTransformer into FromOptionsTransformer and ProjectTrans....
Unify transformer constructor type signature

This allows us to remove a bunch of boilerplate code.

Review URL: https://github.com/google/traceur-compiler/pull/473

Closes #473.
Fix parsing of arrow functions

Arrow functions should be parsed as AssignmentExpression, meaning that they have the lowest precedence of them all.

Review URL: https://github.com/google/traceur-compiler/pull/464

Closes #464.
Change code gen for module getters

This changes the code gen for modules to return a simpler object literal. If someone asks for a module instance object, using `module ident from 'name'` or `System.get('name')`, we create the `Module` object at that point.

The benefit for this is that we now have a smaller code gen and it allows follow up changes to dynamically do `export * from 'name'`.

Partial fix for #470

Review URL: https://github.com/google/traceur-compiler/pull/474

Closes #474.
Dynamic export star

Introduce a runtime function that handles `export *`.

This allows us to not need the module symbol at all in the transformation phase.

Fixes #470

Review URL: https://github.com/google/traceur-compiler/pull/475

Closes #475, closes #470.
Fix minor typo from last commit
Some random cleanup

Review URL: https://github.com/google/traceur-compiler/pull/481

Closes #481.
Refactor ModuleTransformer

This is to make it easier to subclass and override what code to generate.

See issue #461 for motivation.

Review URL: https://github.com/google/traceur-compiler/pull/482

Closes #482.
Extended types annotations

Type annotations work on function declarations & expressions, formal parameters, class members.

Fixes #463

Review URL: https://github.com/google/traceur-compiler/pull/480

Closes #480, closes #463.
Fix issues related to CoverInitialiser

Fixes #478

Review URL: https://github.com/google/traceur-compiler/pull/479

Closes #479, closes #478.
Remove the experimental cascade expression feature

Fixes #405

Review URL: https://github.com/google/traceur-compiler/pull/485

Closes #485, closes #405.
Remoe trap member lookup experimental feature

Review URL: https://github.com/google/traceur-compiler/pull/486

Closes #486.
Remove unused option for optional trailing comma.

The feature was remove a while back. The option was left though.
Fix test runner and regressed tests

If `options.freeVariableChecker` was true then the FromOptionsTransformer returned `undefined` instead of a ParseTree. This caused all the tests to have empty code.

Fixing the above revealed a few broken tests. Most of them were just test errors but there was one  issue with modules. Module instances acquired using `module m from 'name'` are supposed to be live.

Review URL: https://github.com/google/traceur-compiler/pull/487

Closes #487.
Module instance. Skip one getter if possible

Improve live module instances to remove one layer of getter if possible.

Review URL: https://github.com/google/traceur-compiler/pull/488

Closes #488.
Build bin/traceur.js in two explicit steps

Change make rules to build from master branch bin/traceur.js
First compile with previous branch bin/traceur.js.
Then use result to compile for self-hosting check.
Remove distclean rule; combine under make clean.
make test now depends on built traceur.js.

In most cases 'make test' is all you need.

Review URL: https://github.com/google/traceur-compiler/pull/493

Closes #493.
Change private names pass to a symbol pass

This introduces a Symbol global. If the symbols option is true it transforms member expressions to ensure that the symbol is never exposed as a string. If the symbols option is off then symbols toString into a unique string making them still work, but leak in reflection methods.

The code gen for this was greatly simplified from the previous private name pass. This was made possible because we no longer support trapping member lookup so now it is enough to just transform the member expression (in the case of set we still transform the whole thing because the if we only transform the member expression we would need 3 temp variables).

This also gets rid of the `@iter` module and the correct way to get the iterator symbol is to do `Symbol.iterator`.

Review URL: https://github.com/google/traceur-compiler/pull/490

Closes #490.
Update npm version to 0.0.7
Convert ModuleTransformer to depend on runtime.js

This moves the runtime inliner code from ModuleTransformer to runtime.js.

Review URL: https://github.com/google/traceur-compiler/pull/495

Closes #495.
Convert SpreadTransformer to depend on runtime.js

This moves the runtime inliner code from SpreadTransformer to runtime.js.

Review URL: https://github.com/google/traceur-compiler/pull/496

Closes #496.