| '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)); | 
|     }; | 
| }; |