Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
*/
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() }));
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();
// 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'
// 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) {