code: function(to, from, fnName, setupFn) {
    to[fnName] = function() {
      if (setupFn) {
        setupFn();
      }
      return from[fnName].apply(from, arguments);
    };
  }
docs: 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