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

Unified Diff: pkg/compiler/lib/src/js_backend/codegen/unsugar.dart

Issue 1092023002: CPS implementation of throw and rethrow. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 5 years, 8 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: pkg/compiler/lib/src/js_backend/codegen/unsugar.dart
diff --git a/pkg/compiler/lib/src/js_backend/codegen/unsugar.dart b/pkg/compiler/lib/src/js_backend/codegen/unsugar.dart
index e37da432efca412775230f4c0547dd998df2b7e1..ce037eefceeaf439cdd25d5d78dc33a75365a8a8 100644
--- a/pkg/compiler/lib/src/js_backend/codegen/unsugar.dart
+++ b/pkg/compiler/lib/src/js_backend/codegen/unsugar.dart
@@ -106,6 +106,14 @@ class UnsugarVisitor extends RecursiveVisitor {
node.handler.parameters.removeLast();
}
+ processThrow(Throw node) {
+ // The subexpression of throw is wrapped in the JavaScript output.
+ Parameter value = new Parameter(null);
+ insertStaticCall(_glue.getWrapExceptionHelper(), [node.value.definition],
+ value, node);
+ node.value = new Reference<Primitive>(value);
+ }
+
processInvokeMethod(InvokeMethod node) {
Selector selector = node.selector;
// TODO(karlklose): should we rewrite all selectors?

Powered by Google App Engine
This is Rietveld 408576698