Promise.all([
[
`new Thenable(a => a(NaN)).then(a => { throw a; })`,
new Promise(a => a(NaN)).then(a => { throw a; }),
new Synchrous(a => a(NaN)).then(a => { throw a; })
]
].map(async ([code, p, s]) => [code, (await Promise.allSettled([p])).shift(), s.result]))