39642fa2be
Alternative approach to https://codereview.chromium.org/2667983004/, which does not depend on implicit control flow changes from https://codereview.chromium.org/2664083002 - Remove handling for `async function` from Parser::RewriteReturn(). This functionality is moved to BytecodeGenerator::BuildAsyncReturn(). This ensures that promise resolution is deferred until all finally blocks are evaluated fully. - Add a new deferred command (CMD_ASYNC_RETURN), which instructs ControlScope to generate return code using BuildAsyncReturn rather than BuildReturn. - Parser has a new `NewReturnStatement()` helper which determines what type of return statement to generate based on the type of function. BUG=v8:5896, v8:4483 R=littledan@chromium.org, neis@chromium.org, rmcilroy@chromium.org, adamk@chromium.org, gsathya@chromium.org Review-Url: https://codereview.chromium.org/2685683002 Cr-Commit-Position: refs/heads/master@{#43104} |
||
---|---|---|
.. | ||
regress | ||
async-arrow-lexical-arguments.js | ||
async-arrow-lexical-new.target.js | ||
async-arrow-lexical-super.js | ||
async-arrow-lexical-this.js | ||
async-await-basic.js | ||
async-await-no-constructor.js | ||
async-await-resolve-new.js | ||
async-await-species.js | ||
async-destructuring.js | ||
async-function-stacktrace.js | ||
async-function-try-finally.js | ||
object-entries.js | ||
object-get-own-property-descriptors.js | ||
object-values.js | ||
sloppy-no-duplicate-async.js |