Simplify handling of exits from with and catch.
authorkmillikin@chromium.org <kmillikin@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Fri, 12 Aug 2011 10:52:49 +0000 (10:52 +0000)
committerkmillikin@chromium.org <kmillikin@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Fri, 12 Aug 2011 10:52:49 +0000 (10:52 +0000)
commit91553bbacd030d6cc49db412873febcf2114d6d8
treecf8f74181f1ed91ae08c935723bd5d338cbdc608
parent6549163a55df0c66cd0aba600d715144cd33b18e
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=

Review URL: http://codereview.chromium.org/7618007

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8922 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
18 files changed:
src/arm/frames-arm.h
src/arm/macro-assembler-arm.cc
src/ast.cc
src/ast.h
src/frames-inl.h
src/frames.h
src/full-codegen.cc
src/full-codegen.h
src/hydrogen.cc
src/ia32/frames-ia32.h
src/ia32/macro-assembler-ia32.cc
src/parser.cc
src/parser.h
src/prettyprinter.cc
src/rewriter.cc
src/x64/frames-x64.h
src/x64/macro-assembler-x64.cc
test/mjsunit/with-leave.js