Code coverage report for harmonizer/index.js

Statements: 100% (56 / 56)      Branches: 100% (0 / 0)      Functions: 100% (5 / 5)      Lines: 100% (56 / 56)      Ignored: none     

All files » harmonizer/ » index.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 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71  1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 10 10 10                 70 70   10   10 8 8 8   10 12 12     1 10 10 10 10 10 10 10 10 10 10 10 10 10 10   1
'use strict';
var build = require('nodes');
var objectPatternK = require('./util/iterators');
var values = objectPatternK.values;
var objectPatternJ = require('./transform/shorthands');
var deshorthandify = objectPatternJ.transform;
var objectPatternI = require('./transform/arrow-functions');
var arrowify = objectPatternI.transform;
var objectPatternH = require('./transform/comprehensions');
var comprehendify = objectPatternH.transform;
var objectPatternG = require('./transform/for-of');
var forofify = objectPatternG.transform;
var objectPatternF = require('./transform/patterns');
var patternify = objectPatternF.transform;
var objectPatternE = require('./transform/default-params');
var defaultify = objectPatternE.transform;
var objectPatternD = require('./transform/classes');
var classify = objectPatternD.transform;
var objectPatternC = require('./transform/rest-param');
var restify = objectPatternC.transform;
var objectPatternB = require('./transform/spread');
var spreadify = objectPatternB.transform;
var objectPatternA = require('./transform/template-literals');
var templateify = objectPatternA.transform;
var objectPattern = require('./transform/let-declarations');
var letify = objectPattern.transform;
var nodes = build.nodes;
function blockify(program) {
  var statementBodies = function () {
      var comprehension = [];
      for (var iterator = values([
            '#IfStatement > alternate',
            '#IfStatement > consequent',
            '#ForStatement > body',
            '#ForInStatement > body',
            '#ForOfStatement > body',
            '#WhileStatement > body',
            '#DoWhileStatement > body'
          ])['@@iterator'](), step; !(step = iterator.next()).done;) {
        var selector = step.value;
        comprehension.push(selector + '[type!=BlockStatement]');
      }
      return comprehension;
    }();
  program.search(statementBodies).forEach(function (statement) {
    var parentNode = statement.parentNode;
    var key = parentNode.indexOf(statement);
    parentNode[key] = new nodes.BlockStatement({ body: [statement] });
  });
  program.search('#ArrowFunctionExpression[expression=true]').forEach(function (node) {
    node.expression = false;
    node.body = new nodes.BlockStatement({ body: [new nodes.ReturnStatement({ argument: node.body })] });
  });
}
function transform(tree) {
  var program = build(tree);
  blockify(program);
  deshorthandify(program);
  arrowify(program);
  comprehendify(program);
  forofify(program);
  patternify(program);
  defaultify(program);
  classify(program);
  restify(program);
  spreadify(program);
  templateify(program);
  letify(program);
  return program.toJSON();
}
module.exports = transform;