60 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			60 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| '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;
 |