first
This commit is contained in:
63
node_modules/prr/prr.js
generated
vendored
Normal file
63
node_modules/prr/prr.js
generated
vendored
Normal file
@ -0,0 +1,63 @@
|
||||
/*!
|
||||
* prr
|
||||
* (c) 2013 Rod Vagg <rod@vagg.org>
|
||||
* https://github.com/rvagg/prr
|
||||
* License: MIT
|
||||
*/
|
||||
|
||||
(function (name, context, definition) {
|
||||
if (typeof module != 'undefined' && module.exports)
|
||||
module.exports = definition()
|
||||
else
|
||||
context[name] = definition()
|
||||
})('prr', this, function() {
|
||||
|
||||
var setProperty = typeof Object.defineProperty == 'function'
|
||||
? function (obj, key, options) {
|
||||
Object.defineProperty(obj, key, options)
|
||||
return obj
|
||||
}
|
||||
: function (obj, key, options) { // < es5
|
||||
obj[key] = options.value
|
||||
return obj
|
||||
}
|
||||
|
||||
, makeOptions = function (value, options) {
|
||||
var oo = typeof options == 'object'
|
||||
, os = !oo && typeof options == 'string'
|
||||
, op = function (p) {
|
||||
return oo
|
||||
? !!options[p]
|
||||
: os
|
||||
? options.indexOf(p[0]) > -1
|
||||
: false
|
||||
}
|
||||
|
||||
return {
|
||||
enumerable : op('enumerable')
|
||||
, configurable : op('configurable')
|
||||
, writable : op('writable')
|
||||
, value : value
|
||||
}
|
||||
}
|
||||
|
||||
, prr = function (obj, key, value, options) {
|
||||
var k
|
||||
|
||||
options = makeOptions(value, options)
|
||||
|
||||
if (typeof key == 'object') {
|
||||
for (k in key) {
|
||||
if (Object.hasOwnProperty.call(key, k)) {
|
||||
options.value = key[k]
|
||||
setProperty(obj, k, options)
|
||||
}
|
||||
}
|
||||
return obj
|
||||
}
|
||||
|
||||
return setProperty(obj, key, options)
|
||||
}
|
||||
|
||||
return prr
|
||||
})
|
Reference in New Issue
Block a user