1 var anObject = require('./_an-object')
2 , IE8_DOM_DEFINE = require('./_ie8-dom-define')
3 , toPrimitive = require('./_to-primitive')
4 , dP = Object.defineProperty;
6 exports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes){
8 P = toPrimitive(P, true);
10 if(IE8_DOM_DEFINE)try {
11 return dP(O, P, Attributes);
12 } catch(e){ /* empty */ }
13 if('get' in Attributes || 'set' in Attributes)throw TypeError('Accessors not supported!');
14 if('value' in Attributes)O[P] = Attributes.value;