Hi, great job
I started using this implementation because of its lightweight. When I tried it in chrome, that has native promises, I wondered why es6promise overwrote native and I saw that polyfill has this check that is always false, because chrome returns [object object]
Object.prototype.toString.call(P.resolve()) === '[object Promise]'
I hope it can help.
Marco