Update Promise

- Promises/A+ compliance
- basic tests
True, but I don't because Promise.resolve creates new promise, and it seems like unnecessary chaining.