es6.reflect.get.js 727 B

1234567891011121314151617181920
  1. // 26.1.6 Reflect.get(target, propertyKey [, receiver])
  2. var $ = require('./$')
  3. , has = require('./$.has')
  4. , $export = require('./$.export')
  5. , isObject = require('./$.is-object')
  6. , anObject = require('./$.an-object');
  7. function get(target, propertyKey/*, receiver*/){
  8. var receiver = arguments.length < 3 ? target : arguments[2]
  9. , desc, proto;
  10. if(anObject(target) === receiver)return target[propertyKey];
  11. if(desc = $.getDesc(target, propertyKey))return has(desc, 'value')
  12. ? desc.value
  13. : desc.get !== undefined
  14. ? desc.get.call(receiver)
  15. : undefined;
  16. if(isObject(proto = $.getProto(target)))return get(proto, propertyKey, receiver);
  17. }
  18. $export($export.S, 'Reflect', {get: get});