Show More
Commit Description:
change logger to be limited by file size
Commit Description:
change logger to be limited by file size
References:
File last commit:
Show/Diff file:
Action:
node_modules/define-properties/index.js
| 58 lines
| 1.6 KiB
| application/javascript
| JavascriptLexer
|
r789 | 'use strict'; | |||
var keys = require('object-keys'); | ||||
var hasSymbols = typeof Symbol === 'function' && typeof Symbol('foo') === 'symbol'; | ||||
var toStr = Object.prototype.toString; | ||||
var concat = Array.prototype.concat; | ||||
var origDefineProperty = Object.defineProperty; | ||||
var isFunction = function (fn) { | ||||
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 defineProperty = function (object, name, value, predicate) { | ||||
if (name in object && (!isFunction(predicate) || !predicate())) { | ||||
return; | ||||
} | ||||
if (supportsDescriptors) { | ||||
origDefineProperty(object, name, { | ||||
configurable: true, | ||||
enumerable: false, | ||||
value: value, | ||||
writable: true | ||||
}); | ||||
} else { | ||||
object[name] = value; | ||||
} | ||||
}; | ||||
var defineProperties = function (object, map) { | ||||
var predicates = arguments.length > 2 ? arguments[2] : {}; | ||||
var props = keys(map); | ||||
if (hasSymbols) { | ||||
props = concat.call(props, Object.getOwnPropertySymbols(map)); | ||||
} | ||||
for (var i = 0; i < props.length; i += 1) { | ||||
defineProperty(object, props[i], map[props[i]], predicates[props[i]]); | ||||
} | ||||
}; | ||||
defineProperties.supportsDescriptors = !!supportsDescriptors; | ||||
module.exports = defineProperties; | ||||