123456789101112131415161718192021222324252627 |
- // add fake Function#toString
- // for correct work wrapped methods / constructors with methods like LoDash isNative
- var global = require('./$.global')
- , hide = require('./$.hide')
- , SRC = require('./$.uid')('src')
- , TO_STRING = 'toString'
- , $toString = Function[TO_STRING]
- , TPL = ('' + $toString).split(TO_STRING);
- require('./$.core').inspectSource = function(it){
- return $toString.call(it);
- };
- (module.exports = function(O, key, val, safe){
- if(typeof val == 'function'){
- val.hasOwnProperty(SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));
- val.hasOwnProperty('name') || hide(val, 'name', key);
- }
- if(O === global){
- O[key] = val;
- } else {
- if(!safe)delete O[key];
- hide(O, key, val);
- }
- })(Function.prototype, TO_STRING, function toString(){
- return typeof this == 'function' && this[SRC] || $toString.call(this);
- });
|