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.
		
		
		
		
		
			
		
			
				
					
					
						
							28 lines
						
					
					
						
							1.1 KiB
						
					
					
				
			
		
		
	
	
							28 lines
						
					
					
						
							1.1 KiB
						
					
					
				var $ = require('../internals/export'); | 
						|
var DESCRIPTORS = require('../internals/descriptors'); | 
						|
var anObject = require('../internals/an-object'); | 
						|
var toPrimitive = require('../internals/to-primitive'); | 
						|
var definePropertyModule = require('../internals/object-define-property'); | 
						|
var fails = require('../internals/fails'); | 
						|
 | 
						|
// MS Edge has broken Reflect.defineProperty - throwing instead of returning false | 
						|
var ERROR_INSTEAD_OF_FALSE = fails(function () { | 
						|
  // eslint-disable-next-line no-undef | 
						|
  Reflect.defineProperty(definePropertyModule.f({}, 1, { value: 1 }), 1, { value: 2 }); | 
						|
}); | 
						|
 | 
						|
// `Reflect.defineProperty` method | 
						|
// https://tc39.github.io/ecma262/#sec-reflect.defineproperty | 
						|
$({ target: 'Reflect', stat: true, forced: ERROR_INSTEAD_OF_FALSE, sham: !DESCRIPTORS }, { | 
						|
  defineProperty: function defineProperty(target, propertyKey, attributes) { | 
						|
    anObject(target); | 
						|
    var key = toPrimitive(propertyKey, true); | 
						|
    anObject(attributes); | 
						|
    try { | 
						|
      definePropertyModule.f(target, key, attributes); | 
						|
      return true; | 
						|
    } catch (error) { | 
						|
      return false; | 
						|
    } | 
						|
  } | 
						|
});
 | 
						|
 |