Fix Windows build

The script parts in package.json are platform dependent and the
bash if syntax does not work on Windows.
Replace git checkout with git show in Makefile
Allow commonjs modules to use module.exports directly

When using CommonJsModuleTransformer, the module can either use the import statement, or the "old" require() function. This allows the same thing for exports. If a module doesn't use any export statements, it can still export values the pre-ES6 way by assigning to exports.foo or module.exports. Traceur users can migrate to ES6 export statements gradually instead of all at once.

Fixes #598.

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

Closes #629, closes #598.
Handle error code, stdout and stderr for prepublish script

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

Closes #631.
Repl: Make sure we use the same loader everywhere

Move the repl demo code into a module and use its imports to import all of traceur. This ensures that the
repl uses the same version of Traceur throughout the repl demo.

Fixes #609

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

Closes #633, closes #609.
wip
Remove System.normalResolve(); use names not urls in Loader.

System.normalResolve() was incorrect, we should be calling normalize() in all cases.
System.locate() should only be called just before fetch().
Fixes #394, Fixes #393

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

Closes #636, closes #394, closes #393.
Revert "wip"

This reverts commit 81f05377583c8a13b03c2449a4faf15e9bc91ce8.
The patch from another incomplete branch got committed with
a correct patch for PR #636
Rename AttachReferrerNameTransformer to AttachModuleNameTransformer.
This should have been in PR #636; I don't know how it was not.
Move .locate() from System to LoaderHooks.

This function is called by the Loader before fetch();
it is essential private API between Loader and LoaderHooks.

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

Closes #638.
transcode.js uses wrong options object

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

Closes #635.
Convert node/interperter.js to use Loader.

Add test-interpreter target to verify that the compile at least runs.

Fixes Issue #614

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

Closes #625.
Implement System.referrerName for Loader normalization.

See @guybedford's proposal on https://github.com/jorendorff/js-loaders/issues/89.
If System.referrerName has a value, use it to normalize names.
@guybedford used System.parentName, we pick another value to avoid
collisions.

Rename ModuleSymbol.url to ModuleSymbol.moduleName.
Several error messages improved as a side-effect (now have file paths).

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

Closes #641.
Add command line option --referrer <name>, sets System.referrer for --out files.

Rename ModuleTransformer .referrerName to .moduleName.
Pass traceur.options through to inlineAndCompile().
Use the IIFE argument to modules.js to set global (window or node global).
Add a handy Makefile rule test/unit/%-run to run one test.
Move registerModule into System.

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

Closes #642.
Remove strictSemiColon and the lint/nolint feature

These linter features add complexity to the parser without advancing the ES6 goals. We don't have users or supporters for the feature.

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

Closes #640.
Add redirect to repl.html

If the repl is loaded from google code we redirect to github.

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

Closes #643.
import 'x' should execute the module

import 'x' is syntactic sugar for import {} from 'x'.
This fixes a bug in the AMD transformer where it did not run in the
correct context. (this needs to be the global according to ES6)

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

Closes #646.
Extend Loader API calls for support name manipulation

New API:
  Loader.import(name, {referrerName, address}, callback, errback).
  Loader.module(source, name, {referrerName, address}, callback, errback).
  Loader.loadAsScript(name, {referrerName, address}, callback, errback).
  Loader.script(source, name, {referrerName, address}, callback, errback).
where only the first argument is required. The triple name, referrerName, address
are passed to System.normalize().

import/module are similar to js-loaders as discussed:
https://github.com/jorendorff/js-loaders/issues/89.
js-loaders 'options' in module() where we have {referrerName, address}; we add it
to import().

loadAsScript/script are parallel but parse to Script goal. These are not part of js-loaders.

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

Closes #645.
Cleanup to make parse Function{Declaration,Expression} share the code.

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

Closes #650.
Rebuild when any .js file in src/ changes.

The build/dep.mk approach to triggering builds requires
approximately 2x more time per build than the build.
In general we do not include any files in src/ that we
do not compile into traceur.
Therefore simply depending upon src/**/*.js will make
builds faster without triggering extra builds

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

Closes #649.