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.
		
		
		
		
		
			
		
			
				
					
					
						
							31 lines
						
					
					
						
							753 B
						
					
					
				
			
		
		
	
	
							31 lines
						
					
					
						
							753 B
						
					
					
				/*! | 
						|
 * define-property <https://github.com/jonschlinkert/define-property> | 
						|
 * | 
						|
 * Copyright (c) 2015, Jon Schlinkert. | 
						|
 * Licensed under the MIT License. | 
						|
 */ | 
						|
 | 
						|
'use strict'; | 
						|
 | 
						|
var isDescriptor = require('is-descriptor'); | 
						|
 | 
						|
module.exports = function defineProperty(obj, prop, val) { | 
						|
  if (typeof obj !== 'object' && typeof obj !== 'function') { | 
						|
    throw new TypeError('expected an object or function.'); | 
						|
  } | 
						|
 | 
						|
  if (typeof prop !== 'string') { | 
						|
    throw new TypeError('expected `prop` to be a string.'); | 
						|
  } | 
						|
 | 
						|
  if (isDescriptor(val) && ('set' in val || 'get' in val)) { | 
						|
    return Object.defineProperty(obj, prop, val); | 
						|
  } | 
						|
 | 
						|
  return Object.defineProperty(obj, prop, { | 
						|
    configurable: true, | 
						|
    enumerable: false, | 
						|
    writable: true, | 
						|
    value: val | 
						|
  }); | 
						|
};
 | 
						|
 |