whole_func_string: function compile(content, options) {
    options = merge({
      outputLanguage: 'es5',
      modules: 'commonjs',
      filename: '<unknown file>',
      sourceMap: false,
      cwd: process.cwd(),
      moduleName: false
    }, options || {});
  
    var moduleName = options.moduleName;
  
    traceurOptions.reset();
    merge(traceurOptions, options);
  
    var errorReporter = new ErrorReporter();
    var sourceFile = new SourceFile(options.filename, content);
    var parser = new Parser(sourceFile, errorReporter);
    var tree = parser.parseModule();
    var transformer;
    if (moduleName === true || options.modules == 'register' || options.modules == 'inline') {
      moduleName = options.filename.replace(/\.js$/, '');
      moduleName = path.relative(options.cwd, moduleName).replace(/\\/g,'/');
    }
    if (moduleName) {
      transformer = new AttachModuleNameTransformer(moduleName);
      tree = transformer.transformAny(tree);
    }
  
    if (options.outputLanguage.toLowerCase() === 'es6') {
      transformer = new PureES6Transformer(errorReporter);
    } else {
      transformer = new FromOptionsTransformer(errorReporter);
    }
  
    var transformedTree = transformer.transform(tree);
  
    if (errorReporter.hadError()) {
      return {
        js: null,
        errors: errorReporter.errors,
        sourceMap: null
      };
    }
  
    var treeWriterOptions = {};
  
    if (options.sourceMap) {
      treeWriterOptions.sourceMapGenerator = new SourceMapGenerator({
        file: options.filename,
        sourceRoot: null
      });
    }
  
    return {
      js: TreeWriter.write(transformedTree, treeWriterOptions),
      errors: errorReporter.errors,
      sourceMap: treeWriterOptions.sourceMap || null
    };
  }
func_code_string: function compile(content, options) {
    options = merge({
      outputLanguage: 'es5',
      modules: 'commonjs',
      filename: '<unknown file>',
      sourceMap: false,
      cwd: process.cwd(),
      moduleName: false
    }, options || {});
  
    var moduleName = options.moduleName;
  
    traceurOptions.reset();
    merge(traceurOptions, options);
  
    var errorReporter = new ErrorReporter();
    var sourceFile = new SourceFile(options.filename, content);
    var parser = new Parser(sourceFile, errorReporter);
    var tree = parser.parseModule();
    var transformer;
    if (moduleName === true || options.modules == 'register' || options.modules == 'inline') {
      moduleName = options.filename.replace(/\.js$/, '');
      moduleName = path.relative(options.cwd, moduleName).replace(/\\/g,'/');
    }
    if (moduleName) {
      transformer = new AttachModuleNameTransformer(moduleName);
      tree = transformer.transformAny(tree);
    }
  
    if (options.outputLanguage.toLowerCase() === 'es6') {
      transformer = new PureES6Transformer(errorReporter);
    } else {
      transformer = new FromOptionsTransformer(errorReporter);
    }
  
    var transformedTree = transformer.transform(tree);
  
    if (errorReporter.hadError()) {
      return {
        js: null,
        errors: errorReporter.errors,
        sourceMap: null
      };
    }
  
    var treeWriterOptions = {};
  
    if (options.sourceMap) {
      treeWriterOptions.sourceMapGenerator = new SourceMapGenerator({
        file: options.filename,
        sourceRoot: null
      });
    }
  
    return {
      js: TreeWriter.write(transformedTree, treeWriterOptions),
      errors: errorReporter.errors,
      sourceMap: treeWriterOptions.sourceMap || null
    };
  }
func_documentation_string: Compile ES6 source code with Traceur.
  
  TODO(vojta): Support source maps.
  
  @param  {string} content ES6 source code.
  @param  {Object=} options Traceur options.
  @return {string} Transpiled ES5 code.