aboutsummaryrefslogtreecommitdiff
path: root/deps/node/deps/npm/node_modules/prr/prr.js
diff options
context:
space:
mode:
Diffstat (limited to 'deps/node/deps/npm/node_modules/prr/prr.js')
-rw-r--r--deps/node/deps/npm/node_modules/prr/prr.js63
1 files changed, 63 insertions, 0 deletions
diff --git a/deps/node/deps/npm/node_modules/prr/prr.js b/deps/node/deps/npm/node_modules/prr/prr.js
new file mode 100644
index 00000000..94f58628
--- /dev/null
+++ b/deps/node/deps/npm/node_modules/prr/prr.js
@@ -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
+}) \ No newline at end of file