• littledan's avatar
    Ensure IteratorClose is called for errors in non-declaring assignments · 1aee7555
    littledan authored
    There was a bug in for-of loops without newly declared variables: If,
    in performing the assignment, an exception were thrown, then
    IteratorClose would not be called. The problem was that the assignment
    is done as part of assign_each, which happens before the loop is put
    back in the state which is recognized to be breaking/throwing/returning
    early.
    
    This patch modifies the for-of desugaring by setting the loop state
    before, rather than after, evaluating the assign_each portion, which is
    responsible for evaluating the assignment in for-of loops which do not
    have a declaration.
    
    This patch, together with https://codereview.chromium.org/1728973002 ,
    allow all test262 iterator return-related tests to pass.
    
    R=rossberg
    BUG=v8:4776
    LOG=Y
    
    Review URL: https://codereview.chromium.org/1731773003
    
    Cr-Commit-Position: refs/heads/master@{#34262}
    1aee7555
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...
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...