Code coverage report for 6to5/runtime.js

Statements: 100% (15 / 15)      Branches: 100% (2 / 2)      Functions: 100% (2 / 2)      Lines: 100% (15 / 15)      Ignored: none     

All files » 6to5/ » runtime.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 301 1 1 1 1   1 2   2 2 2   2             2 18 18         2    
var generator = require("./generation/generator");
var util      = require("./util");
var File      = require("./file");
var t         = require("./types");
var _         = require("lodash");
 
module.exports = function (namespace) {
  namespace = t.identifier(t.toIdentifier(namespace || "to5Runtime"));
 
  var body      = [];
  var container = t.functionExpression(null, [t.identifier("global")], t.blockStatement(body));
  var tree      = t.program([t.expressionStatement(t.callExpression(container, [util.template("self-global")]))]);
 
  body.push(t.variableDeclaration("var", [
    t.variableDeclarator(
      namespace,
      t.assignmentExpression("=", t.memberExpression(t.identifier("global"), namespace), t.objectExpression([]))
    )
  ]));
 
  _.each(File.declarations, function (name) {
    var key = t.identifier(t.toIdentifier(name));
    body.push(t.expressionStatement(
      t.assignmentExpression("=", t.memberExpression(namespace, key), util.template(name))
    ));
  });
 
  return generator(tree).code;
};