| | |
| | | return typeof fn === 'function' && toStr.call(fn) === '[object Function]'; |
| | | }; |
| | | |
| | | var arePropertyDescriptorsSupported = function () { |
| | | var obj = {}; |
| | | try { |
| | | origDefineProperty(obj, 'x', { enumerable: false, value: obj }); |
| | | // eslint-disable-next-line no-unused-vars, no-restricted-syntax |
| | | for (var _ in obj) { // jscs:ignore disallowUnusedVariables |
| | | return false; |
| | | } |
| | | return obj.x === obj; |
| | | } catch (e) { /* this is IE 8. */ |
| | | return false; |
| | | } |
| | | }; |
| | | var supportsDescriptors = origDefineProperty && arePropertyDescriptorsSupported(); |
| | | var hasPropertyDescriptors = require('has-property-descriptors')(); |
| | | |
| | | var supportsDescriptors = origDefineProperty && hasPropertyDescriptors; |
| | | |
| | | var defineProperty = function (object, name, value, predicate) { |
| | | if (name in object && (!isFunction(predicate) || !predicate())) { |
| | |
| | | writable: true |
| | | }); |
| | | } else { |
| | | object[name] = value; |
| | | object[name] = value; // eslint-disable-line no-param-reassign |
| | | } |
| | | }; |
| | | |