function reject (reason) {
          settlePromise(p1, $rejected, reason);
      }
The `Promise.all(iterable)` method returns a promise that resolves when
all of the promises in the iterable argument have resolved.

The result is passed as an array of values from all the promises.
If something passed in the iterable array is not a promise,
it's converted to one by Promise.resolve. If any of the passed in promises rejects,
the all Promise immediately rejects with the value of the promise that rejected,
discarding all the other promises whether or not they have resolved.
@param  {iterable} iterable An iterable object, such as an Array.
@return {Yaku}
@example
```js
var Promise = require('yaku');
Promise.all([
    123,
    Promise.resolve(0)
])
.then((values) => {
    console.log(values); // => [123, 0]
});
```
@example
Use with iterable.
```js
var Promise = require('yaku');
Promise.all((function * () {
    yield 10;
    yield new Promise(function (r) { setTimeout(r, 1000, "OK") });
})())
.then((values) => {
    console.log(values); // => [123, 0]
});
```