added implementations of Promise.all and Promise.race