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.
		
		
		
		
		
			
		
			
				
					
					
						
							38 lines
						
					
					
						
							888 B
						
					
					
				
			
		
		
	
	
							38 lines
						
					
					
						
							888 B
						
					
					
				/*! | 
						|
 * define-property <https://github.com/jonschlinkert/define-property> | 
						|
 * | 
						|
 * Copyright (c) 2015-2018, Jon Schlinkert. | 
						|
 * Released under the MIT License. | 
						|
 */ | 
						|
 | 
						|
'use strict'; | 
						|
 | 
						|
var isobject = require('isobject'); | 
						|
var isDescriptor = require('is-descriptor'); | 
						|
var define = (typeof Reflect !== 'undefined' && Reflect.defineProperty) | 
						|
  ? Reflect.defineProperty | 
						|
  : Object.defineProperty; | 
						|
 | 
						|
module.exports = function defineProperty(obj, key, val) { | 
						|
  if (!isobject(obj) && typeof obj !== 'function' && !Array.isArray(obj)) { | 
						|
    throw new TypeError('expected an object, function, or array'); | 
						|
  } | 
						|
 | 
						|
  if (typeof key !== 'string') { | 
						|
    throw new TypeError('expected "key" to be a string'); | 
						|
  } | 
						|
 | 
						|
  if (isDescriptor(val)) { | 
						|
    define(obj, key, val); | 
						|
    return obj; | 
						|
  } | 
						|
 | 
						|
  define(obj, key, { | 
						|
    configurable: true, | 
						|
    enumerable: false, | 
						|
    writable: true, | 
						|
    value: val | 
						|
  }); | 
						|
 | 
						|
  return obj; | 
						|
};
 | 
						|
 |