You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							34 lines
						
					
					
						
							1.5 KiB
						
					
					
				
			
		
		
	
	
							34 lines
						
					
					
						
							1.5 KiB
						
					
					
				var global = require('../internals/global'); | 
						|
var createNonEnumerableProperty = require('../internals/create-non-enumerable-property'); | 
						|
var has = require('../internals/has'); | 
						|
var setGlobal = require('../internals/set-global'); | 
						|
var inspectSource = require('../internals/inspect-source'); | 
						|
var InternalStateModule = require('../internals/internal-state'); | 
						|
 | 
						|
var getInternalState = InternalStateModule.get; | 
						|
var enforceInternalState = InternalStateModule.enforce; | 
						|
var TEMPLATE = String(String).split('String'); | 
						|
 | 
						|
(module.exports = function (O, key, value, options) { | 
						|
  var unsafe = options ? !!options.unsafe : false; | 
						|
  var simple = options ? !!options.enumerable : false; | 
						|
  var noTargetGet = options ? !!options.noTargetGet : false; | 
						|
  if (typeof value == 'function') { | 
						|
    if (typeof key == 'string' && !has(value, 'name')) createNonEnumerableProperty(value, 'name', key); | 
						|
    enforceInternalState(value).source = TEMPLATE.join(typeof key == 'string' ? key : ''); | 
						|
  } | 
						|
  if (O === global) { | 
						|
    if (simple) O[key] = value; | 
						|
    else setGlobal(key, value); | 
						|
    return; | 
						|
  } else if (!unsafe) { | 
						|
    delete O[key]; | 
						|
  } else if (!noTargetGet && O[key]) { | 
						|
    simple = true; | 
						|
  } | 
						|
  if (simple) O[key] = value; | 
						|
  else createNonEnumerableProperty(O, key, value); | 
						|
// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative | 
						|
})(Function.prototype, 'toString', function toString() { | 
						|
  return typeof this == 'function' && getInternalState(this).source || inspectSource(this); | 
						|
});
 | 
						|
 |