lib/protractor.js
function(to, from, fnName, setupFn) {
  to[fnName] = function() {
    if (setupFn) {
      setupFn();
    }
    return from[fnName].apply(from, arguments);
  };
}
function(to, from, fnName, setupFn) {
  to[fnName] = function() {
    if (setupFn) {
      setupFn();
    }
    return from[fnName].apply(from, arguments);
  };
}
function ( to , from , fnName , setupFn ) { to [ fnName ] = function ( ) { if ( setupFn ) { setupFn ( ) ; } return from [ fnName ] . apply ( from , arguments ) ; } ; }
Mix a function from one object onto another. The function will still be
called in the context of the original object.

@private
@param {Object} to
@param {Object} from
@param {string} fnName
@param {function=} setupFn
Mix a function from one object onto another . The function will still be called in the context of the original object .