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

Unified Diff: dart/frog/leg/ssa/codegen.dart

Issue 9474040: Improve exception handling: (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 8 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: dart/frog/leg/ssa/codegen.dart
diff --git a/dart/frog/leg/ssa/codegen.dart b/dart/frog/leg/ssa/codegen.dart
index ae76f3016d28049799101e8ad0abf98c2595c67f..44bcc964f01e91f400d8c874610a52607b49710e 100644
--- a/dart/frog/leg/ssa/codegen.dart
+++ b/dart/frog/leg/ssa/codegen.dart
@@ -444,7 +444,6 @@ class SsaCodeGenerator implements HVisitor {
buffer.add('} catch ($name) {\n');
indent++;
addIndentation();
- buffer.add('$name = $name.dartException;\n');
visitBasicBlock(successors[1]);
parameterNames.remove(node.exception.element);
indent--;
@@ -717,7 +716,12 @@ class SsaCodeGenerator implements HVisitor {
}
visitThrow(HThrow node) {
- generateThrowWithHelper('captureStackTrace', node.inputs[0]);
+ if (node.isRethrow) {
+ buffer.add('throw ');
+ use(node.inputs[0], JSPrecedence.EXPRESSION_PRECEDENCE);
+ } else {
+ generateThrowWithHelper('captureStackTrace', node.inputs[0]);
+ }
buffer.add(';\n');
}

Powered by Google App Engine
This is Rietveld 408576698