• Predrag Rudic's avatar
    MIPS[64]: Port: [async] Introduce dedicated JSAsyncFunctionObject. · 44142530
    Predrag Rudic authored
    Port commit a63987a4
    
    Original message:
    >This JSAsyncFunctionObject represents the implicit generator object
    >inside of async functions, and also holds the outer promise for the
    >async functions. This in turn allows us to get rid of the .promise
    >in the Parser / BytecodeGenerator completely, and will make it
    >possible to build zero-cost async stack traces independent of the
    >concrete synchronous part of the stack frame (which currently breaks
    >in Node.js).
    >
    >In the bytecode all the async function operations now take this new
    >JSAsyncFunctionObject instead of passing both the .generator_object
    >and the .promise, which further simplifies and shrinks the bytecode.
    >It also reduces the size of async function frames, potentially making
    >the suspend/resume cheaper.
    >
    >This also changes `await` to use intrinsics instead of calling to
    >special JSFunctions on the native context, and thus reduces the size of
    >the native contexts.
    >
    >Drive-by-fix: Introduce a dedicated JSCreateAsyncFunctionObject operator
    >to TurboFan.
    >
    >Bug: v8:7253, v8:7522
    >Change-Id: I2305302285156aa1f71328ecac70377abdd92c80
    >Ref: nodejs/node#11865
    >Design-Document: http://bit.ly/v8-zero-cost-async-stack-traces
    >Reviewed-on: https://chromium-review.googlesource.com/c/1273049
    >Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
    >Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org>
    >Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
    >Reviewed-by: Maya Lekova <mslekova@chromium.org>
    >Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
    >Cr-Commit-Position: refs/heads/master@{#56554}
    
    Change-Id: I5a11bd31bf2aac2e2b94779fa03b85ee88d7dbc4
    Reviewed-on: https://chromium-review.googlesource.com/c/1288811Reviewed-by: 's avatarIvica Bogosavljevic <ibogosavljevic@wavecomp.com>
    Commit-Queue: Ivica Bogosavljevic <ibogosavljevic@wavecomp.com>
    Cr-Commit-Position: refs/heads/master@{#56818}
    44142530
Name
Last commit
Last update
benchmarks Loading commit data...
build_overrides Loading commit data...
custom_deps Loading commit data...
docs Loading commit data...
gni Loading commit data...
include Loading commit data...
infra Loading commit data...
samples Loading commit data...
src Loading commit data...
test Loading commit data...
testing Loading commit data...
third_party Loading commit data...
tools Loading commit data...
.clang-format Loading commit data...
.clang-tidy Loading commit data...
.editorconfig Loading commit data...
.git-blame-ignore-revs Loading commit data...
.gitattributes Loading commit data...
.gitignore Loading commit data...
.gn Loading commit data...
.vpython Loading commit data...
.ycm_extra_conf.py Loading commit data...
AUTHORS Loading commit data...
BUILD.gn Loading commit data...
CODE_OF_CONDUCT.md Loading commit data...
ChangeLog Loading commit data...
DEPS Loading commit data...
LICENSE Loading commit data...
LICENSE.fdlibm Loading commit data...
LICENSE.strongtalk Loading commit data...
LICENSE.v8 Loading commit data...
LICENSE.valgrind Loading commit data...
OWNERS Loading commit data...
PRESUBMIT.py Loading commit data...
README.md Loading commit data...
WATCHLISTS Loading commit data...
codereview.settings Loading commit data...
snapshot_toolchain.gni Loading commit data...