Manually implement a function that behaves like Promise.all().
For this coding exercise, the input contains already-resolved values, since JSON test cases cannot represent live promises or awaitables. Return all values in their original input order, including when completion order would differ in a real asynchronous implementation. An empty input must return an empty list.
def promise_all(promises):