Test case details

Preparation Code

async function doStuff1() { return Promise.resolve(1); } async function doStuff2() { return Promise.resolve(2); } async function doStuffClosure(bool) { return await (async () => { return bool ? doStuff1() : doStuff2(); })(); } async function doStuffBranching(bool) { let response; if (bool) { response = await doStuff1(); } else { response = await doStuff2(); } return response; }

Test cases

Test #1

doStuffClosure(true).then(val => console.log('done', val));

Test #2

doStuffBranching(true).then(val => console.log('done', val));