Code coverage report for harmonizer/util/id.js

Statements: 93.75% (15 / 16)      Branches: 50% (1 / 2)      Functions: 100% (3 / 3)      Lines: 93.75% (15 / 16)      Ignored: none     

All files » harmonizer/util/ » id.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 1 32 32       1 123 123 123 32   123   1 95 95  
'use strict';
var objectPattern = require('nodes');
var nodes = objectPattern.nodes;
var letters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
var letter = function (i) {
  Eif (i <= 25) {
    return letters[i];
  }
  return letter(Math.floor(i / 26) - 1) + letters[i % 26];
};
exports.getUniqueName = function (node, name) {
  var names = node.search('#Identifier:declaration > name, #Identifier:reference > name');
  var preferred = name, i = 0;
  while (~names.indexOf(name)) {
    name = preferred + letter(i++) + '';
  }
  return name;
};
exports.getUniqueId = function (node, name) {
  name = exports.getUniqueName(node, name);
  return new nodes.Identifier({ name: name });
};