• 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
..
OWNERS Loading commit data...
expression-classifier.h Loading commit data...
func-name-inferrer.cc Loading commit data...
func-name-inferrer.h Loading commit data...
parameter-initializer-rewriter.cc Loading commit data...
parameter-initializer-rewriter.h Loading commit data...
parser-base.h Loading commit data...
parser.cc Loading commit data...
parser.h Loading commit data...
pattern-rewriter.cc Loading commit data...
preparse-data-format.h Loading commit data...
preparse-data.cc Loading commit data...
preparse-data.h Loading commit data...
preparser.cc Loading commit data...
preparser.h Loading commit data...
rewriter.cc Loading commit data...
rewriter.h Loading commit data...
scanner-character-streams.cc Loading commit data...
scanner-character-streams.h Loading commit data...
scanner.cc Loading commit data...
scanner.h Loading commit data...
token.cc Loading commit data...
token.h Loading commit data...