code: function cloneFunction (fn) {
    var temp = function temporary () {
      return fn.apply(this, arguments)
    }
    for (var key in fn) {
      temp[key] = fn[key]
    }
    return temp
  }
docs: https://gist.github.com/Sykkro/7490193#file-clone-js-L1