2016-10-10 03:43:44 +02:00
|
|
|
// 26.1.3 Reflect.defineProperty(target, propertyKey, attributes)
|
2017-04-20 03:09:25 +02:00
|
|
|
var $ = require('./$')
|
|
|
|
, $export = require('./$.export')
|
|
|
|
, anObject = require('./$.an-object');
|
2016-10-10 03:43:44 +02:00
|
|
|
|
|
|
|
// MS Edge has broken Reflect.defineProperty - throwing instead of returning false
|
2017-04-20 03:09:25 +02:00
|
|
|
$export($export.S + $export.F * require('./$.fails')(function(){
|
|
|
|
Reflect.defineProperty($.setDesc({}, 1, {value: 1}), 1, {value: 2});
|
2016-10-10 03:43:44 +02:00
|
|
|
}), 'Reflect', {
|
|
|
|
defineProperty: function defineProperty(target, propertyKey, attributes){
|
|
|
|
anObject(target);
|
|
|
|
try {
|
2017-04-20 03:09:25 +02:00
|
|
|
$.setDesc(target, propertyKey, attributes);
|
2016-10-10 03:43:44 +02:00
|
|
|
return true;
|
|
|
|
} catch(e){
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
});
|