code: function makeSafeToCall(fun) {
    if (fun) {
      defProp(fun, "call", fun.call);
      defProp(fun, "apply", fun.apply);
    }
    return fun;
  }
docs: For functions that will be invoked using .call or .apply, we need to define those methods on the function objects themselves, rather than inheriting them from Function.prototype, so that a malicious or clumsy third party cannot interfere with the functionality of this module by redefining Function.prototype.call or .apply.