• Junliang Yan's avatar
    PPC/s390: [async] Introduce dedicated JSAsyncFunctionObject. · 71898faf
    Junliang Yan authored
    Port a63987a4
    
    Original Commit 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.
    
        to TurboFan.
    
    R=bmeurer@chromium.org, joransiu@ca.ibm.com, michael_dawson@ca.ibm.com
    BUG=
    LOG=N
    
    Change-Id: Ife0aa45b11580f316e657942485907cf78336e4b
    Reviewed-on: https://chromium-review.googlesource.com/c/1276867
    Commit-Queue: Junliang Yan <jyan@ca.ibm.com>
    Reviewed-by: 's avatarJoran Siu <joransiu@ca.ibm.com>
    Cr-Commit-Position: refs/heads/master@{#56581}
    71898faf
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...