UNPKG

1 kBJavaScriptView Raw
1var $ = require('../internals/export');
2var isObject = require('../internals/is-object');
3var anObject = require('../internals/an-object');
4var has = require('../internals/has');
5var getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');
6var getPrototypeOf = require('../internals/object-get-prototype-of');
7
8// `Reflect.get` method
9// https://tc39.es/ecma262/#sec-reflect.get
10function get(target, propertyKey /* , receiver */) {
11 var receiver = arguments.length < 3 ? target : arguments[2];
12 var descriptor, prototype;
13 if (anObject(target) === receiver) return target[propertyKey];
14 if (descriptor = getOwnPropertyDescriptorModule.f(target, propertyKey)) return has(descriptor, 'value')
15 ? descriptor.value
16 : descriptor.get === undefined
17 ? undefined
18 : descriptor.get.call(receiver);
19 if (isObject(prototype = getPrototypeOf(target))) return get(prototype, propertyKey, receiver);
20}
21
22$({ target: 'Reflect', stat: true }, {
23 get: get
24});