Reviewers: Vyacheslav Egorov, Steven,
Message:
I have separate change of cleanup after this one (e.g., we can remove the
exit
context statements).
http://codereview.chromium.org/7618007/diff/1/src/full-codegen.cc
File src/full-codegen.cc (right):
http://codereview.chromium.org/7618007/diff/1/src/full-codegen.cc#newcode94
src/full-codegen.cc:94: Visit(stmt->expression());
I'm not sure this is right, I'll check with Soeren.
Description:
Simplify handling of exits from with and catch.
Remove the try/finally used for with and catch. Instead of using
try/finally to handle break and continue from with or catch,
statically track nesting dept and clean up when compiling break or
continue.
And instead of using try/finally to handle throw to handler in a frame
whose pc is inside a with or catch, store the context that the handler
should run in in the handler itself.
BUG=
TEST=
Please review this at http://codereview.chromium.org/7618007/
SVN Base: https://v8.googlecode.com/svn/branches/bleeding_edge
Affected files:
M src/arm/frames-arm.h
M src/arm/macro-assembler-arm.cc
M src/ast.h
M src/ast.cc
M src/frames-inl.h
M src/frames.h
M src/full-codegen.h
M src/full-codegen.cc
M src/hydrogen.cc
M src/ia32/frames-ia32.h
M src/ia32/macro-assembler-ia32.cc
M src/parser.h
M src/parser.cc
M src/prettyprinter.cc
M src/rewriter.cc
M src/x64/frames-x64.h
M src/x64/macro-assembler-x64.cc
M test/mjsunit/with-leave.js
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev