<div dir="ltr"><div>Introduction of promise.return() and promise.throw() similar to generator.return() and generator.throw() can be helpful</div><div><br></div><div>Assuming analogy in tuples ([``function*``](<a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/function*" target="_blank">https://<wbr>developer.mozilla.org/en-US/<wbr>docs/Web/JavaScript/Reference/<wbr>Statements/function*</a>), [``yield``](<a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/yield" target="_blank">https://developer.<wbr>mozilla.org/en-US/docs/Web/<wbr>JavaScript/Reference/<wbr>Operators/yield</a>), [``Generator.prototype.return(<wbr>)``](<a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Generator/return" target="_blank">https://developer.<wbr>mozilla.org/en-US/docs/Web/<wbr>JavaScript/Reference/Global_<wbr>Objects/Generator/return</a>), [``Generator.prototype.throw()<wbr>``](<a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Generator/throw" target="_blank">https://developer.mozilla.<wbr>org/en-US/docs/Web/JavaScript/<wbr>Reference/Global_Objects/<wbr>Generator/throw</a>) ) and ([``async function``](<a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/async_function" target="_blank">https://developer.<wbr>mozilla.org/en-US/docs/Web/<wbr>JavaScript/Reference/<wbr>Operators/async_function</a>), [``await``](<a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/await" target="_blank">https://developer.<wbr>mozilla.org/en-US/docs/Web/<wbr>JavaScript/Reference/<wbr>Operators/await</a>), ``?Promise.prototype.return()`<wbr>`, ``?Promise.prototype.throw()``<wbr>), it would be good to have ``Promise.prototype.return()`` and ``Promise.prototype.throw()`` which in case of ``async``/``await`` function should just "inject" some [``return``](<a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/return)/%5Bthrow%5D(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/throw" target="_blank">https://<wbr>developer.mozilla.org/en-US/<wbr>docs/Web/JavaScript/Reference/<wbr>Statements/return)/[``throw``]<wbr>(https://developer.mozilla.<wbr>org/en-US/docs/Web/JavaScript/<wbr>Reference/Statements/throw</a>) action in place of pending ``await`` statement. </div><div><br></div><div>While for ``.then``-like promises it should just force promise to abnormal completion (with provided result) without calling callbacks provided in .``then``/.``catch`` methods (if they was not yet called before, at the time of "abruption" attempt). </div></div>