Promise is already defined in ES6.
Use Array.from if available.
Nammed functions for better stacktraces.
0.3.2