lib/types.js
function combineNumbers(types) {
  var typeNames = ['int', 'long', 'float', 'double'];
  var superIndex = -1;
  var superType = null;
  var i, l, type, index;
  for (i = 0, l = types.length; i < l; i++) {
    type = types[i];
    index = typeNames.indexOf(type.typeName);
    if (index > superIndex) {
      superIndex = index;
      superType = type;
    }
  }
  return superType;
}
function combineNumbers(types) {
  var typeNames = ['int', 'long', 'float', 'double'];
  var superIndex = -1;
  var superType = null;
  var i, l, type, index;
  for (i = 0, l = types.length; i < l; i++) {
    type = types[i];
    index = typeNames.indexOf(type.typeName);
    if (index > superIndex) {
      superIndex = index;
      superType = type;
    }
  }
  return superType;
}
function combineNumbers ( types ) { var typeNames = [ 'int' , 'long' , 'float' , 'double' ] ; var superIndex = - 1 ; var superType = null ; var i , l , type , index ; for ( i = 0 , l = types . length ; i < l ; i ++ ) { type = types [ i ] ; index = typeNames . indexOf ( type . typeName ) ; if ( index > superIndex ) { superIndex = index ; superType = type ; } } return superType ; }
Combine number types.

Note that never have to create a new type here, we are guaranteed to be able
to reuse one of the input types as super-type.
Combine number types .