| 'use strict'; | |
| 
 | |
| 
 | |
| function isNothing(subject) { | |
|   return (typeof subject === 'undefined') || (subject === null); | |
| } | |
| 
 | |
| 
 | |
| function isObject(subject) { | |
|   return (typeof subject === 'object') && (subject !== null); | |
| } | |
| 
 | |
| 
 | |
| function toArray(sequence) { | |
|   if (Array.isArray(sequence)) return sequence; | |
|   else if (isNothing(sequence)) return []; | |
| 
 | |
|   return [ sequence ]; | |
| } | |
| 
 | |
| 
 | |
| function extend(target, source) { | |
|   var index, length, key, sourceKeys; | |
| 
 | |
|   if (source) { | |
|     sourceKeys = Object.keys(source); | |
| 
 | |
|     for (index = 0, length = sourceKeys.length; index < length; index += 1) { | |
|       key = sourceKeys[index]; | |
|       target[key] = source[key]; | |
|     } | |
|   } | |
| 
 | |
|   return target; | |
| } | |
| 
 | |
| 
 | |
| function repeat(string, count) { | |
|   var result = '', cycle; | |
| 
 | |
|   for (cycle = 0; cycle < count; cycle += 1) { | |
|     result += string; | |
|   } | |
| 
 | |
|   return result; | |
| } | |
| 
 | |
| 
 | |
| function isNegativeZero(number) { | |
|   return (number === 0) && (Number.NEGATIVE_INFINITY === 1 / number); | |
| } | |
| 
 | |
| 
 | |
| module.exports.isNothing      = isNothing; | |
| module.exports.isObject       = isObject; | |
| module.exports.toArray        = toArray; | |
| module.exports.repeat         = repeat; | |
| module.exports.isNegativeZero = isNegativeZero; | |
| module.exports.extend         = extend;
 |