Tiny promise library compatible with Promise/A+ spec and ES6