You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
			
				
					30 lines
				
				571 B
			
		
		
			
		
	
	
					30 lines
				
				571 B
			| 
								 
											4 years ago
										 
									 | 
							
								'use strict';
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								var isArrayish = require('is-arrayish');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								var concat = Array.prototype.concat;
							 | 
						||
| 
								 | 
							
								var slice = Array.prototype.slice;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								var swizzle = module.exports = function swizzle(args) {
							 | 
						||
| 
								 | 
							
									var results = [];
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									for (var i = 0, len = args.length; i < len; i++) {
							 | 
						||
| 
								 | 
							
										var arg = args[i];
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										if (isArrayish(arg)) {
							 | 
						||
| 
								 | 
							
											// http://jsperf.com/javascript-array-concat-vs-push/98
							 | 
						||
| 
								 | 
							
											results = concat.call(results, slice.call(arg));
							 | 
						||
| 
								 | 
							
										} else {
							 | 
						||
| 
								 | 
							
											results.push(arg);
							 | 
						||
| 
								 | 
							
										}
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									return results;
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								swizzle.wrap = function (fn) {
							 | 
						||
| 
								 | 
							
									return function () {
							 | 
						||
| 
								 | 
							
										return fn(swizzle(arguments));
							 | 
						||
| 
								 | 
							
									};
							 | 
						||
| 
								 | 
							
								};
							 |