• neis's avatar
    Preserve exception message in iterator finalization. · f70b3d3b
    neis authored
    The parser uses a try-catch in order to record when the client of an iterator
    throws.  The exception then used to get rethrown via 'throw', which
    unfortunately resulted in the original exception message object getting
    overwritten.
    
    This CL solves this as follows:
    - add a clear_pending_message flag to TryCatchStatement (set to true in normal
      cases),
    - set clear_pending_message to false for the TryCatchStatement used in iterator
      finalization
    - change full-codegen, turbofan, and the interpreter to emit the ClearPendingMessage call
      only when the flag is set,
    - replace 'throw' with '%ReThrow' in the iterator finalization code, thus
      reusing the (not-cleared) pending message
    
    R=littledan@chromium.org, mstarzinger@chromium.org, yangguo@chromium.org
    BUG=v8:4875
    LOG=n
    
    Review URL: https://codereview.chromium.org/1842953003
    
    Cr-Commit-Position: refs/heads/master@{#35226}
    f70b3d3b
Name
Last commit
Last update
benchmarks Loading commit data...
build Loading commit data...
docs 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/binutils Loading commit data...
tools Loading commit data...
.clang-format Loading commit data...
.gitignore 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.strongtalk Loading commit data...
LICENSE.v8 Loading commit data...
LICENSE.valgrind Loading commit data...
Makefile Loading commit data...
Makefile.android Loading commit data...
Makefile.nacl 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...