Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(111)

Issue 1695583003: [WIP] for-of iterator finalization (Closed)

Created:
4 years, 10 months ago by neis
Modified:
4 years, 9 months ago
Reviewers:
CC:
v8-reviews_googlegroups.com, rossberg, Dan Ehrenberg
Base URL:
https://chromium.googlesource.com/v8/v8.git@master
Target Ref:
refs/pending/heads/master
Project:
v8
Visibility:
Public.

Description

[WIP] for-of iterator finalization BUG=

Patch Set 1 #

Total comments: 4
Unified diffs Side-by-side diffs Delta from patch set Stats (+626 lines, -41 lines) Patch
M src/ast/ast.h View 4 chunks +8 lines, -0 lines 1 comment Download
M src/ast/ast-value-factory.h View 1 chunk +1 line, -0 lines 0 comments Download
M src/ast/scopes.cc View 2 chunks +2 lines, -2 lines 0 comments Download
M src/messages.h View 1 chunk +1 line, -0 lines 0 comments Download
M src/parsing/parser.h View 2 chunks +5 lines, -1 line 0 comments Download
M src/parsing/parser.cc View 18 chunks +399 lines, -38 lines 2 comments Download
A test/mjsunit/harmony/iterator-close.js View 1 chunk +210 lines, -0 lines 1 comment Download

Messages

Total messages: 2 (1 generated)
neis
4 years, 10 months ago (2016-02-12 12:30:13 UTC) #2
Ok, here is what I currently have.  The issue we discussed is still unsolved.

Moreover, some tests from our suite currently fail for unclear reasons.  One
alarming example is the do-expressions mjsunit test, which crashes when the
rewriter inserts a statement into some block when the zone appears to be
invalid.  Some or most of the failing tests are related to the interpreter.  I
had talked to Michi about the problem where the variable->IsContextSlot() check
fails and it wasn't entirely clear if there is an actual problem somewhere or if
the check is just too strong.

https://codereview.chromium.org/1695583003/diff/1/src/ast/ast.h
File src/ast/ast.h (right):

https://codereview.chromium.org/1695583003/diff/1/src/ast/ast.h#newcode906
src/ast/ast.h:906: 
Instead of having iterator_, we could extract the variable from assign_iterator
or next_result.

https://codereview.chromium.org/1695583003/diff/1/src/parsing/parser.cc
File src/parsing/parser.cc (left):

https://codereview.chromium.org/1695583003/diff/1/src/parsing/parser.cc#oldco...
src/parsing/parser.cc:5903: 
The changes to RewriteYieldStar are unrelated.

https://codereview.chromium.org/1695583003/diff/1/src/parsing/parser.cc
File src/parsing/parser.cc (right):

https://codereview.chromium.org/1695583003/diff/1/src/parsing/parser.cc#newco...
src/parsing/parser.cc:6302: void
ParserTraits::BuildIteratorClose(ZoneList<Statement*>* statements,
The changes to this BuildIteratorClose are unrelated too.  There is a separate
BuildIteratorClose further below that is used in the for-of rewriting.  I had
hoped to have only one function but merging them seems to make things look too
obfuscated.

https://codereview.chromium.org/1695583003/diff/1/test/mjsunit/harmony/iterat...
File test/mjsunit/harmony/iterator-close.js (right):

https://codereview.chromium.org/1695583003/diff/1/test/mjsunit/harmony/iterat...
test/mjsunit/harmony/iterator-close.js:27: //}, 42);
This and the other two commented out tests fail with the .catch reference error
that we discussed.

Powered by Google App Engine
This is Rietveld 408576698