How to use the traceur.semantics function in traceur

To help you get started, we’ve selected a few traceur examples, based on popular ways it is used in public projects.

Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.

github jspm / jspm-cli / traceur-compiler.js View on Github external
*/

    traceur.options = o.options;
    traceur.options.sourceMaps = true;
    traceur.options.modules = 'parse';

    var reporter = new traceur.util.ErrorReporter();
    reporter.reportMessageInternal = function(location, kind, format, args) {
      process.stdout.write(JSON.stringify({ err: kind + '\n' + o.file + location }));
      process.exit(0);
    }

    var parser = new traceur.syntax.Parser(reporter, new traceur.syntax.SourceFile(o.file, o.source));
    var tree = parser.parseModule();

    var project = new traceur.semantics.symbols.Project(o.file);
    var transformer = new traceur.codegeneration.ProgramTransformer(reporter, project);
    tree = transformer.transform(tree);

    // generate source
    var sourceMapGenerator = new traceur.outputgeneration.SourceMapGenerator({ file: o.originalFile });
    var opt = { sourceMapGenerator: sourceMapGenerator };

    var source = traceur.outputgeneration.TreeWriter.write(tree, opt);

    process.stdout.write(JSON.stringify({
      source: source,
      sourceMap: opt.sourceMap
    }));
  }
  catch(e) {
    process.stdout.write(JSON.stringify({ err: e.toString() }));
github tarruda / grunt-traceur-build / tasks / traceur_build.js View on Github external
function buildToDirectory(grunt, options, f) {
  // Iterate over all specified file groups.
  var asts, currentDir;
  var reporter = new TestErrorReporter();
  var project = new traceur.semantics.symbols.Project(f.dest);
  var cwd = f.orig.cwd || '.';

  f.src.filter(function(filepath) {
    if (!grunt.file.exists(filepath)) {
      grunt.log.warn('Source file "' + filepath + '" not found.');
      return false;
    } else {
      return true;
    }
  }).map(function(filepath) {
    var sourceFile = new traceur.syntax.SourceFile(path.relative(cwd, filepath),
      grunt.file.read(filepath));
    project.addFile(sourceFile);
  });

  currentDir = process.cwd();
github bjoerge / react-es6-class / boilerplate / transpile-es6.js View on Github external
// ES5 source transform/transpiler based on the es6ify browserify transform by thlorenz

'use strict';

var traceur            =  require('traceur')
  , compile            =  traceur.codegeneration.Compiler.compile
  , Project            =  traceur.semantics.symbols.Project
  , ProjectWriter      =  traceur.outputgeneration.ProjectWriter
  , SourceFile         =  traceur.syntax.SourceFile
  , format             =  require('util').format
  , path               =  require('path')
  ;

+function initGlobalTraceurOptions() {
  [ 'arrayComprehension'
    , 'arrowFunctions'
    , 'classes'
    , 'defaultParameters'
    , 'destructuring'
    , 'forOf'
    , 'propertyMethods'
    , 'propertyNameShorthand'
    , 'templateLiterals'
github tarruda / grunt-traceur-build / tasks / traceur_build.js View on Github external
// this hack is needed because the traceur developers have made the
// command line compiler modules private. without this we won't get
// the automatic dependency resolution done by parsing the modules
// 'import' statements.
try {
  var modPath = path.resolve('node_modules/grunt-traceur-build/node_modules/traceur/src/node/inline-module');
} catch (e) {
  var modPath = path.resolve('node_modules/traceur/src/node/inline-module');
}
var inlineAndCompileSync = require(modPath).inlineAndCompileSync;

var TreeWriter = traceur.outputgeneration.TreeWriter;
var SourceMapGenerator = traceur.outputgeneration.SourceMapGenerator;
var TestErrorReporter = traceur.util.TestErrorReporter;
var Project = traceur.semantics.symbols.Project;
var SourceFile = traceur.syntax.SourceFile;

var NAME = 'traceur_build';
var DESC =
  'Compiles ECMAScript 6 (harmony) files, optionally merging and ' +
  'generating source maps.';

function generateIncludeFile(files) {
  var rv = [];
  files.forEach(function(f) {
    rv.push('module ' + traceur.generateNameForUrl(f) + ' from "' + f + '"');
  });
  return rv.join('\n');
}

function wrapClosure(code, param, expression, sourceMapGenerator) {