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.
21 lines
790 B
21 lines
790 B
// 26.1.6 Reflect.get(target, propertyKey [, receiver]) |
|
var gOPD = require('./_object-gopd'); |
|
var getPrototypeOf = require('./_object-gpo'); |
|
var has = require('./_has'); |
|
var $export = require('./_export'); |
|
var isObject = require('./_is-object'); |
|
var anObject = require('./_an-object'); |
|
|
|
function get(target, propertyKey /* , receiver */) { |
|
var receiver = arguments.length < 3 ? target : arguments[2]; |
|
var desc, proto; |
|
if (anObject(target) === receiver) return target[propertyKey]; |
|
if (desc = gOPD.f(target, propertyKey)) return has(desc, 'value') |
|
? desc.value |
|
: desc.get !== undefined |
|
? desc.get.call(receiver) |
|
: undefined; |
|
if (isObject(proto = getPrototypeOf(target))) return get(proto, propertyKey, receiver); |
|
} |
|
|
|
$export($export.S, 'Reflect', { get: get });
|
|
|