private.js
function makeSafeToCall(fun) {
  if (fun) {
    defProp(fun, "call", fun.call);
    defProp(fun, "apply", fun.apply);
  }
  return fun;
}
function makeSafeToCall(fun) {
  if (fun) {
    defProp(fun, "call", fun.call);
    defProp(fun, "apply", fun.apply);
  }
  return fun;
}
function makeSafeToCall ( fun ) { if ( fun ) { defProp ( fun , "call" , fun . call ) ; defProp ( fun , "apply" , fun . apply ) ; } return fun ; }
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.
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 .