<commit_before>'use strict';

var nodeTraceur        =  require('node-traceur')
  , traceur            =  nodeTraceur.traceur
  , compile            =  traceur.codegeneration.Compiler.compile
  , SourceMapGenerator =  traceur.outputgeneration.SourceMapGenerator
  , 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'
  , 'restParameters'
  , 'spread'
  , 'generatorComprehension'
  , 'generators'
  , 'modules'
  , 'blockBinding'
  , 'sourceMaps'
  ].forEach(function (k) { traceur.options[k] = true; });
}();

module.exports = function compileFile(file, contents) {

  var name       =  path.basename(file)
    , project    =  new Project(file)
    , sourceFile =  new SourceFile(name, contents)
    , err
    ;

  var reporter = {
    reportError : function(pos, msg) {
      err = format('%s:%s:%s %s', file, pos.line + 1, pos.offset, msg);
    },<commit_msg>allowing deferred functions<commit_after>'use strict';

var nodeTraceur        =  require('node-traceur')
  , traceur            =  nodeTraceur.traceur
  , compile            =  traceur.codegeneration.Compiler.compile
  , SourceMapGenerator =  traceur.outputgeneration.SourceMapGenerator
  , 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'
  , 'restParameters'
  , 'spread'
  , 'generatorComprehension'
  , 'generators'
  , 'modules'
  , 'deferredFunctions'
  , 'blockBinding'
  , 'sourceMaps'
  ].forEach(function (k) { traceur.options[k] = true; });
}();

module.exports = function compileFile(file, contents) {

  var name       =  path.basename(file)
    , project    =  new Project(file)
    , sourceFile =  new SourceFile(name, contents)
    , err
    ;

  var reporter = {
    reportError : function(pos, msg) {
      err = format('%s:%s:%s %s', file, pos.line + 1, pos.offset, msg);
    },
{'fraction_non_alphanumeric': 0.1292388847023361, 'fraction_numerical': 0.0007535795026375283, 'mean_word_length': 2.898678414096916, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2294185', 'n_tokens_mistral': 869, 'n_tokens_neox': 841, 'n_words': 145}