у меня тоже не было этого бага, пока не добавил параметр _defer, чтобы resolver при создании promise сразу запускался, а не при первом вызове then:
вся логика в then, только он запускает resolver, чтобы обойтись малой кровью, добавил параметр _defer
function Promise(resolver, _defer) {
...
return _defer ? this ? this.then();
}
Promise.prototype.then = function () {
...
resolver(...)
...
return new Promise(..., _defer = true);
};
но теперь всплыл этот баг.