• rossberg's avatar
    [es6] Implement for-of iterator finalization · cb1bf4af
    rossberg authored
    Implements iterator finalisation by desugaring for-of loops with an additional try-finally wrapper. See comment in parser.cc for details.
    
    Also improved some AST printing facilities while there.
    
    @Ross, I had to disable the bytecode generation test for for-of, because it got completely out of hand after this change (the new bytecode has 150+ lines). See the TODO that I assigned to you.
    
    Patch set 1 is WIP patch by Georg (http://crrev.com/1695583003), patch set 2 relative changes.
    
    @Georg, FYI, I changed the following:
    
    - Moved try-finally out of the loop body, for performance, and in order to be able to handle `continue` correctly.
    - Fixed scope management in ParseForStatement, which was the cause for the variable allocation failure.
    - Fixed pre-existing zone initialisation bug in rewriter, which caused the crashes.
    - Enabled all tests, adjusted a few others, added a couple more.
    
    BUG=v8:2214
    LOG=Y
    
    Review URL: https://codereview.chromium.org/1695393003
    
    Cr-Commit-Position: refs/heads/master@{#34111}
    cb1bf4af
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...