| 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
 | | 'use strict'; |  |   |  | /** |  |  * Syntactic sugar for invoking a function and expanding an array for arguments. |  |  * |  |  * Common use case would be to use `Function.prototype.apply`. |  |  * |  |  *  ```js |  |  *  function f(x, y, z) {} |  |  *  var args = [1, 2, 3]; |  |  *  f.apply(null, args); |  |  *  ``` |  |  * |  |  * With `spread` this example can be re-written. |  |  * |  |  *  ```js |  |  *  spread(function(x, y, z) {})([1, 2, 3]); |  |  *  ``` |  |  * |  |  * @param {Function} callback |  |  * @returns {Function} |  |  */ |  | module.exports = function spread(callback) { |  |   return function wrap(arr) { |  |     return callback.apply(null, arr); |  |   }; |  | }; | 
 |