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