Last change
on this file since 6c1585f was 6a3a178, checked in by Ema <ema_spirova@…>, 3 years ago |
initial commit
|
-
Property mode
set to
100644
|
File size:
949 bytes
|
Rev | Line | |
---|
[6a3a178] | 1 | /*!
|
---|
| 2 | * is-data-descriptor <https://github.com/jonschlinkert/is-data-descriptor>
|
---|
| 3 | *
|
---|
| 4 | * Copyright (c) 2015-2017, Jon Schlinkert.
|
---|
| 5 | * Released under the MIT License.
|
---|
| 6 | */
|
---|
| 7 |
|
---|
| 8 | 'use strict';
|
---|
| 9 |
|
---|
| 10 | var typeOf = require('kind-of');
|
---|
| 11 |
|
---|
| 12 | module.exports = function isDataDescriptor(obj, prop) {
|
---|
| 13 | // data descriptor properties
|
---|
| 14 | var data = {
|
---|
| 15 | configurable: 'boolean',
|
---|
| 16 | enumerable: 'boolean',
|
---|
| 17 | writable: 'boolean'
|
---|
| 18 | };
|
---|
| 19 |
|
---|
| 20 | if (typeOf(obj) !== 'object') {
|
---|
| 21 | return false;
|
---|
| 22 | }
|
---|
| 23 |
|
---|
| 24 | if (typeof prop === 'string') {
|
---|
| 25 | var val = Object.getOwnPropertyDescriptor(obj, prop);
|
---|
| 26 | return typeof val !== 'undefined';
|
---|
| 27 | }
|
---|
| 28 |
|
---|
| 29 | if (!('value' in obj) && !('writable' in obj)) {
|
---|
| 30 | return false;
|
---|
| 31 | }
|
---|
| 32 |
|
---|
| 33 | for (var key in obj) {
|
---|
| 34 | if (key === 'value') continue;
|
---|
| 35 |
|
---|
| 36 | if (!data.hasOwnProperty(key)) {
|
---|
| 37 | continue;
|
---|
| 38 | }
|
---|
| 39 |
|
---|
| 40 | if (typeOf(obj[key]) === data[key]) {
|
---|
| 41 | continue;
|
---|
| 42 | }
|
---|
| 43 |
|
---|
| 44 | if (typeof obj[key] !== 'undefined') {
|
---|
| 45 | return false;
|
---|
| 46 | }
|
---|
| 47 | }
|
---|
| 48 | return true;
|
---|
| 49 | };
|
---|
Note:
See
TracBrowser
for help on using the repository browser.