1234567891011121314151617181920212223 |
- 'use strict';
- var $ = require('../internals/export');
- var DESCRIPTORS = require('../internals/descriptors');
- var FORCED = require('../internals/object-prototype-accessors-forced');
- var toObject = require('../internals/to-object');
- var toPropertyKey = require('../internals/to-property-key');
- var getPrototypeOf = require('../internals/object-get-prototype-of');
- var getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;
- // `Object.prototype.__lookupSetter__` method
- // https://tc39.es/ecma262/#sec-object.prototype.__lookupSetter__
- if (DESCRIPTORS) {
- $({ target: 'Object', proto: true, forced: FORCED }, {
- __lookupSetter__: function __lookupSetter__(P) {
- var O = toObject(this);
- var key = toPropertyKey(P);
- var desc;
- do {
- if (desc = getOwnPropertyDescriptor(O, key)) return desc.set;
- } while (O = getPrototypeOf(O));
- }
- });
- }
|