• Benedikt Meurer's avatar
    [inspector] Consistently treat promise rejections as side-effecting. · 0195a5eb
    Benedikt Meurer authored
    Previously we'd treat %_AsyncFunctionReject (and %AsyncFunctionReject)
    as side-effect free (in async functions), but that's not correct, since
    promise rejections have side-effects (at the very least triggering the
    unhandled promise rejection machinery in the browser).
    
    This required a minor refactoring as previously we'd classify functions
    as side-effecting or not depending on whether they contain any calls to
    side-effecting intrinsics, no matter whether this call is actually
    executed or not. That would break REPL mode however if we'd generally
    treat all async functions with %_AsyncFunctionReject intrinsic calls as
    side-effecting, so instead of performing the intrinsic checks ahead of
    time, we now perform the test at execution time.
    
    Before: https://imgur.com/5BvJP9d.png
    After: https://imgur.com/10FanNr.png
    Fixed: chromium:1249275
    Change-Id: Ib06f945ba21f1e06ee9b13a1363fad342464fd9a
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3197712
    Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
    Commit-Queue: Simon Zünd <szuend@chromium.org>
    Auto-Submit: Benedikt Meurer <bmeurer@chromium.org>
    Reviewed-by: 's avatarSimon Zünd <szuend@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#77183}
    0195a5eb
Name
Last commit
Last update
..
api Loading commit data...
asmjs Loading commit data...
ast Loading commit data...
base Loading commit data...
baseline Loading commit data...
bigint Loading commit data...
builtins Loading commit data...
codegen Loading commit data...
common Loading commit data...
compiler Loading commit data...
compiler-dispatcher Loading commit data...
d8 Loading commit data...
date Loading commit data...
debug Loading commit data...
deoptimizer Loading commit data...
diagnostics Loading commit data...
execution Loading commit data...
extensions Loading commit data...
flags Loading commit data...
handles Loading commit data...
heap Loading commit data...
ic Loading commit data...
init Loading commit data...
inspector Loading commit data...
interpreter Loading commit data...
json Loading commit data...
libplatform Loading commit data...
libsampler Loading commit data...
logging Loading commit data...
numbers Loading commit data...
objects Loading commit data...
parsing Loading commit data...
profiler Loading commit data...
protobuf Loading commit data...
regexp Loading commit data...
roots Loading commit data...
runtime Loading commit data...
sanitizer Loading commit data...
snapshot Loading commit data...
strings Loading commit data...
tasks Loading commit data...
third_party Loading commit data...
torque Loading commit data...
tracing Loading commit data...
trap-handler Loading commit data...
utils Loading commit data...
wasm Loading commit data...
web-snapshot Loading commit data...
zone Loading commit data...
DEPS Loading commit data...
DIR_METADATA Loading commit data...
OWNERS Loading commit data...