Support for ES6 - Harmony

I started to implement the support for ES6 and got quite far, yet the compilation is still failing on a following error: `Error loading app files Object #<Object> has no method 'checkObjectCoercible'` 

I do not have much more time this weekend so I may check it back on Monday. I am doing this pull request only if you need these files. I checked also how the other package is compiling files and it is in following manner:

```javascript
var traceur = Npm.require('traceur');

Plugin.registerSourceHandler("next.js", function (compileStep) {
  var oldPath = compileStep.inputPath;
  var newPath = oldPath.replace(/next(?=\.js$)/, 'now');

  var source = compileStep.read().toString('utf8');
  // force Traceur to define `this` in function scope
  source = "this;\n" + source;

  var compiler = new traceur.NodeCompiler({
    sourceMaps: true
  });

  try {
    var output = compiler(source, oldPath, newPath);
    compileStep.addJavaScript({
      sourcePath: oldPath,
      path: newPath,
      data: output,
      sourceMap: compiler.getSourceMap()
    });
  } catch (err) {
    compileStep.error({
      message: err.message,
    });
  }
});
```

I tried to use this approach as well but to me following line return an object `compiler` and not a function. Not sure what's going on.

```javascript
  var compiler = new traceur.NodeCompiler({
    sourceMaps: true
  });

// compiler is object not a function so I could not do:
compiler(content) // fails with #Object is not a function
```

I hope I helped a bit. If I have time on Monday I will continue.
That's the only way of how to catch errors from compilation now.

Tomas

On Friday, October 17, 2014, Jonas Aschenbrenner <notifications@github.com>
wrote:

> In server/lib/jsHarmony-require.js:
>
> > + *
> > + * @method jsHarmonyPreprocessor
> > + * @param {Object} options to pass directly to the coffee-script compiler. See here
> > + */
> > +var jsHarmonyPreprocessor = function (options, content, file, done) {
> > +
> > +  var traceurOptions = {
> > +    sourceMaps: true
> > +  };
> > +
> > +  var result;
> > +
> > +  try {
> > +    result = traceur.compile(content, traceurOptions);
> > +  } catch (ex) {
> > +    return done(ex.toString().replace(/(\<compile-source\>)/g, "\n$1"));
>
> @tomitrescak <https://github.com/tomitrescak> Why is this line needed?
>
> --
> Reply to this email directly or view it on GitHub
> <https://github.com/Sanjo/meteor-jasmine/pull/39/files#r18973838>.
>