|
|
CPS implementation of throw and rethrow.
Throw and rethrow are implemented as CPS expressions in tail position.
The CPS translation assumes that all expressions translate to a primitive
that is the value of the expression, and throw is an expression in Dart.
For simplicity of the translation, a non-tail throw Primitive is sometimes
used as a placeholder during the translation and removed immediately
afterward.
Both throw and rethrow are represented in the Tree IR. In the Dart backend,
throw translates to throw and rethrow translates to rethrow. In the JS
backend, throw translates to JS throw of a wrapped value. Rethrow is not
currently implemented for the JS backend, it bails out of the compiler.
R=asgerf@google.com
BUG=
Committed: https://code.google.com/p/dart/source/detail?r=45235
Total comments: 3
|
Unified diffs |
Side-by-side diffs |
Delta from patch set |
Stats (+368 lines, -91 lines) |
Patch |
 |
M |
pkg/compiler/lib/src/cps_ir/cps_ir_builder.dart
|
View
|
|
2 chunks |
+21 lines, -2 lines |
3 comments
|
Download
|
 |
M |
pkg/compiler/lib/src/cps_ir/cps_ir_builder_task.dart
|
View
|
|
6 chunks |
+105 lines, -8 lines |
0 comments
|
Download
|
 |
M |
pkg/compiler/lib/src/cps_ir/cps_ir_nodes.dart
|
View
|
|
7 chunks |
+64 lines, -3 lines |
0 comments
|
Download
|
 |
M |
pkg/compiler/lib/src/cps_ir/cps_ir_nodes_sexpr.dart
|
View
|
|
4 chunks |
+17 lines, -4 lines |
0 comments
|
Download
|
 |
M |
pkg/compiler/lib/src/cps_ir/cps_ir_tracer.dart
|
View
|
|
4 chunks |
+26 lines, -6 lines |
0 comments
|
Download
|
 |
M |
pkg/compiler/lib/src/cps_ir/optimizers.dart
|
View
|
|
1 chunk |
+0 lines, -2 lines |
0 comments
|
Download
|
 |
M |
pkg/compiler/lib/src/cps_ir/shrinking_reductions.dart
|
View
|
|
1 chunk |
+4 lines, -0 lines |
0 comments
|
Download
|
 |
M |
pkg/compiler/lib/src/cps_ir/type_propagation.dart
|
View
|
|
1 chunk |
+10 lines, -0 lines |
0 comments
|
Download
|
 |
M |
pkg/compiler/lib/src/dart_backend/backend_ast_emitter.dart
|
View
|
|
4 chunks |
+15 lines, -11 lines |
0 comments
|
Download
|
 |
M |
pkg/compiler/lib/src/js_backend/codegen/codegen.dart
|
View
|
|
1 chunk |
+10 lines, -0 lines |
0 comments
|
Download
|
 |
M |
pkg/compiler/lib/src/js_backend/codegen/glue.dart
|
View
|
|
1 chunk |
+4 lines, -0 lines |
0 comments
|
Download
|
 |
M |
pkg/compiler/lib/src/js_backend/codegen/unsugar.dart
|
View
|
|
1 chunk |
+8 lines, -0 lines |
0 comments
|
Download
|
 |
M |
pkg/compiler/lib/src/tree_ir/optimization/statement_rewriter.dart
|
View
|
|
1 chunk |
+9 lines, -0 lines |
0 comments
|
Download
|
 |
M |
pkg/compiler/lib/src/tree_ir/tree_ir_builder.dart
|
View
|
|
1 chunk |
+13 lines, -0 lines |
0 comments
|
Download
|
 |
M |
pkg/compiler/lib/src/tree_ir/tree_ir_nodes.dart
|
View
|
|
5 chunks |
+46 lines, -0 lines |
0 comments
|
Download
|
 |
M |
pkg/compiler/lib/src/tree_ir/tree_ir_tracer.dart
|
View
|
|
2 chunks |
+16 lines, -0 lines |
0 comments
|
Download
|
 |
M |
tests/co19/co19-dart2js.status
|
View
|
|
4 chunks |
+0 lines, -7 lines |
0 comments
|
Download
|
 |
M |
tests/corelib/corelib.status
|
View
|
|
3 chunks |
+0 lines, -5 lines |
0 comments
|
Download
|
 |
M |
tests/isolate/isolate.status
|
View
|
|
4 chunks |
+0 lines, -8 lines |
0 comments
|
Download
|
 |
M |
tests/language/language_dart2js.status
|
View
|
|
12 chunks |
+0 lines, -15 lines |
0 comments
|
Download
|
 |
M |
tests/lib/lib.status
|
View
|
|
8 chunks |
+0 lines, -11 lines |
0 comments
|
Download
|
 |
M |
tests/standalone/standalone.status
|
View
|
|
7 chunks |
+0 lines, -9 lines |
0 comments
|
Download
|
Total messages: 5 (0 generated)
|