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

Issue 923013002: dart2dart: Implementation of simple try/catch. (Closed)

Created:
5 years, 10 months ago by Kevin Millikin (Google)
Modified:
5 years, 10 months ago
CC:
reviews_dartlang.org
Target Ref:
refs/heads/master
Visibility:
Public.

Description

dart2dart: Implementation of simple try/catch. A LetHandler form is introduced to the CPS IR. It binds an exception handler continuation which is in scope for its body. LetHandler is translated to try/catch when translating back to direct style. Optimizations in the CPS and Tree languages that move code have to be careful when moving code into or out of the scope of an exception handler. This change prohibits such code motion, though it might be sometimes provably safe. BUG= R=asgerf@google.com, karlklose@google.com Committed: https://code.google.com/p/dart/source/detail?r=44047

Patch Set 1 #

Total comments: 48

Patch Set 2 : Fixed break/continue, incorporated comments. #

Total comments: 2
Unified diffs Side-by-side diffs Delta from patch set Stats (+620 lines, -76 lines) Patch
M pkg/compiler/lib/src/cps_ir/cps_ir_builder.dart View 1 10 chunks +99 lines, -9 lines 0 comments Download
M pkg/compiler/lib/src/cps_ir/cps_ir_builder_visitor.dart View 1 5 chunks +204 lines, -13 lines 0 comments Download
M pkg/compiler/lib/src/cps_ir/cps_ir_nodes.dart View 1 4 chunks +42 lines, -0 lines 0 comments Download
M pkg/compiler/lib/src/cps_ir/cps_ir_nodes_sexpr.dart View 2 chunks +25 lines, -5 lines 0 comments Download
M pkg/compiler/lib/src/cps_ir/cps_ir_tracer.dart View 1 3 chunks +18 lines, -4 lines 0 comments Download
M pkg/compiler/lib/src/cps_ir/redundant_phi.dart View 1 4 chunks +25 lines, -6 lines 0 comments Download
M pkg/compiler/lib/src/cps_ir/shrinking_reductions.dart View 1 4 chunks +29 lines, -5 lines 0 comments Download
M pkg/compiler/lib/src/cps_ir/type_propagation.dart View 1 1 chunk +14 lines, -0 lines 0 comments Download
M pkg/compiler/lib/src/dart_backend/backend_ast_emitter.dart View 1 4 chunks +34 lines, -2 lines 2 comments Download
M pkg/compiler/lib/src/dart_backend/backend_ast_nodes.dart View 2 chunks +4 lines, -4 lines 0 comments Download
M pkg/compiler/lib/src/dart_backend/backend_ast_to_frontend_ast.dart View 2 chunks +8 lines, -4 lines 0 comments Download
M pkg/compiler/lib/src/js_backend/codegen/codegen.dart View 1 1 chunk +6 lines, -0 lines 0 comments Download
M pkg/compiler/lib/src/tree_ir/optimization/copy_propagator.dart View 1 1 chunk +6 lines, -0 lines 0 comments Download
M pkg/compiler/lib/src/tree_ir/optimization/logical_rewriter.dart View 1 1 chunk +6 lines, -0 lines 0 comments Download
M pkg/compiler/lib/src/tree_ir/optimization/loop_rewriter.dart View 1 1 chunk +6 lines, -0 lines 0 comments Download
M pkg/compiler/lib/src/tree_ir/optimization/statement_rewriter.dart View 1 4 chunks +23 lines, -2 lines 0 comments Download
M pkg/compiler/lib/src/tree_ir/tree_ir_builder.dart View 1 4 chunks +31 lines, -3 lines 0 comments Download
M pkg/compiler/lib/src/tree_ir/tree_ir_nodes.dart View 1 4 chunks +26 lines, -0 lines 0 comments Download
M pkg/compiler/lib/src/tree_ir/tree_ir_tracer.dart View 1 2 chunks +10 lines, -0 lines 0 comments Download
M pkg/compiler/lib/src/use_unused_api.dart View 1 2 chunks +2 lines, -17 lines 0 comments Download
M tests/language/language_dart2js.status View 1 2 chunks +2 lines, -2 lines 0 comments Download

Messages

Total messages: 14 (2 generated)
Kevin Millikin (Google)
Here is an initial implementation of try/catch. Missing is (1) multiple catch clauses/'on T' clauses, ...
5 years, 10 months ago (2015-02-13 10:16:06 UTC) #3
karlklose
LGTM. https://codereview.chromium.org/923013002/diff/1/pkg/compiler/lib/src/cps_ir/cps_ir_builder_visitor.dart File pkg/compiler/lib/src/cps_ir/cps_ir_builder_visitor.dart (right): https://codereview.chromium.org/923013002/diff/1/pkg/compiler/lib/src/cps_ir/cps_ir_builder_visitor.dart#newcode561 pkg/compiler/lib/src/cps_ir/cps_ir_builder_visitor.dart:561: catchBuilder.environment.extend(elements[catchClause.exception] as Local, Why do you cast to ...
5 years, 10 months ago (2015-02-16 10:15:49 UTC) #4
floitsch
DBC. https://codereview.chromium.org/923013002/diff/1/pkg/compiler/lib/src/cps_ir/cps_ir_builder.dart File pkg/compiler/lib/src/cps_ir/cps_ir_builder.dart (right): https://codereview.chromium.org/923013002/diff/1/pkg/compiler/lib/src/cps_ir/cps_ir_builder.dart#newcode213 pkg/compiler/lib/src/cps_ir/cps_ir_builder.dart:213: /// This include which variables should be copied ...
5 years, 10 months ago (2015-02-16 14:54:08 UTC) #5
asgerf
LGTM with comments. https://codereview.chromium.org/923013002/diff/1/pkg/compiler/lib/src/cps_ir/cps_ir_builder.dart File pkg/compiler/lib/src/cps_ir/cps_ir_builder.dart (right): https://codereview.chromium.org/923013002/diff/1/pkg/compiler/lib/src/cps_ir/cps_ir_builder.dart#newcode215 pkg/compiler/lib/src/cps_ir/cps_ir_builder.dart:215: Map<ast.TryStatement, TryStatementInfo> get tryStatements; I thought ...
5 years, 10 months ago (2015-02-20 10:10:08 UTC) #6
Kevin Millikin (Google)
Thanks for the review. I'm addressing the comments and fixing a bug (this change does ...
5 years, 10 months ago (2015-02-24 11:59:25 UTC) #7
Kevin Millikin (Google)
https://codereview.chromium.org/923013002/diff/1/pkg/compiler/lib/src/cps_ir/shrinking_reductions.dart File pkg/compiler/lib/src/cps_ir/shrinking_reductions.dart (right): https://codereview.chromium.org/923013002/diff/1/pkg/compiler/lib/src/cps_ir/shrinking_reductions.dart#newcode272 pkg/compiler/lib/src/cps_ir/shrinking_reductions.dart:272: // site. This is not safe if the body ...
5 years, 10 months ago (2015-02-25 11:06:37 UTC) #8
asgerf
https://codereview.chromium.org/923013002/diff/1/pkg/compiler/lib/src/tree_ir/optimization/statement_rewriter.dart File pkg/compiler/lib/src/tree_ir/optimization/statement_rewriter.dart (right): https://codereview.chromium.org/923013002/diff/1/pkg/compiler/lib/src/tree_ir/optimization/statement_rewriter.dart#newcode276 pkg/compiler/lib/src/tree_ir/optimization/statement_rewriter.dart:276: safeForHandlers.contains(jump.target)) { On 2015/02/25 11:06:36, kmillikin wrote: > On ...
5 years, 10 months ago (2015-02-25 11:55:11 UTC) #9
Kevin Millikin (Google)
I have a new patch that is enough different that it needs a fresh look: ...
5 years, 10 months ago (2015-02-25 16:08:36 UTC) #10
asgerf
LGTM!
5 years, 10 months ago (2015-02-26 10:30:11 UTC) #11
karlklose
SLGTM. https://codereview.chromium.org/923013002/diff/20001/pkg/compiler/lib/src/dart_backend/backend_ast_emitter.dart File pkg/compiler/lib/src/dart_backend/backend_ast_emitter.dart (right): https://codereview.chromium.org/923013002/diff/20001/pkg/compiler/lib/src/dart_backend/backend_ast_emitter.dart#newcode637 pkg/compiler/lib/src/dart_backend/backend_ast_emitter.dart:637: BuilderContext<Statement> context) { Align parameters.
5 years, 10 months ago (2015-02-26 11:24:23 UTC) #12
Kevin Millikin (Google)
https://codereview.chromium.org/923013002/diff/20001/pkg/compiler/lib/src/dart_backend/backend_ast_emitter.dart File pkg/compiler/lib/src/dart_backend/backend_ast_emitter.dart (right): https://codereview.chromium.org/923013002/diff/20001/pkg/compiler/lib/src/dart_backend/backend_ast_emitter.dart#newcode637 pkg/compiler/lib/src/dart_backend/backend_ast_emitter.dart:637: BuilderContext<Statement> context) { On 2015/02/26 11:24:23, karlklose wrote: > ...
5 years, 10 months ago (2015-02-26 12:47:06 UTC) #13
Kevin Millikin (Google)
5 years, 10 months ago (2015-02-26 13:25:33 UTC) #14
Message was sent while issue was closed.
Committed patchset #2 (id:20001) manually as 44047 (presubmit successful).

Powered by Google App Engine
This is Rietveld 408576698