Code coverage report for harmonizer/transform/default-params.js

Statements: 100% (16 / 16)      Branches: 100% (4 / 4)      Functions: 100% (3 / 3)      Lines: 100% (16 / 16)      Ignored: none     

All files » harmonizer/transform/ » default-params.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22  1 1 1 10 158 153   5 5 5 7 1   6 6 6 6       1
'use strict';
var objectPattern = require('../util/string');
var express = objectPattern.express;
function defaultify(program) {
  program.search('#Function').forEach(function (fn) {
    if (fn.defaults.length === 0) {
      return;
    }
    var params = fn.params;
    var defaults = fn.defaults;
    defaults.forEachRight(function (node, i) {
      if (node == null) {
        return defaults.removeChild(node);
      }
      var param = params[i];
      var statement = express('if (' + param.name + ' === void 0) ' + param.name + ' = $');
      statement.consequent.expression.right = node;
      fn.body.body.unshift(statement);
    });
  });
}
exports.transform = defaultify;