| 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 110d156acc756a234b9a77331c9cf80e70068a9f..1651e101c28a2f44a10180c95291e2119bb7fb52 100644
|
| --- a/pkg/compiler/lib/src/js_backend/codegen/unsugar.dart
|
| +++ b/pkg/compiler/lib/src/js_backend/codegen/unsugar.dart
|
| @@ -82,12 +82,6 @@ class UnsugarVisitor extends RecursiveVisitor {
|
| visit(function);
|
| }
|
|
|
| - @override
|
| - visit(Node node) {
|
| - Node result = node.accept(this);
|
| - return result != null ? result : node;
|
| - }
|
| -
|
| Constant get trueConstant {
|
| return new Constant(new TrueConstantValue());
|
| }
|
| @@ -176,7 +170,11 @@ class UnsugarVisitor extends RecursiveVisitor {
|
| letCont.parent = parent;
|
| }
|
|
|
| - processLetHandler(LetHandler node) {
|
| + @override
|
| + Expression traverseLetHandler(LetHandler node) {
|
| + assert(node.handler.parameters.length == 2);
|
| + Parameter previousExceptionParameter = _exceptionParameter;
|
| +
|
| // BEFORE: Handlers have two parameters, exception and stack trace.
|
| // AFTER: Handlers have a single parameter, which is unwrapped to get
|
| // the exception and stack trace.
|
| @@ -200,18 +198,11 @@ class UnsugarVisitor extends RecursiveVisitor {
|
|
|
| assert(stackTraceParameter.hasNoUses);
|
| node.handler.parameters.removeLast();
|
| - }
|
|
|
| - @override
|
| - visitLetHandler(LetHandler node) {
|
| - assert(node.handler.parameters.length == 2);
|
| - Parameter previousExceptionParameter = _exceptionParameter;
|
| - _exceptionParameter = node.handler.parameters.first;
|
| - processLetHandler(node);
|
| visit(node.handler);
|
| _exceptionParameter = previousExceptionParameter;
|
|
|
| - visit(node.body);
|
| + return node.body;
|
| }
|
|
|
| processThrow(Throw node) {
|
| @@ -244,6 +235,7 @@ class UnsugarVisitor extends RecursiveVisitor {
|
| /// based on the input type, and the let sinking pass will propagate the
|
| /// getInterceptor call closer to its use when this is profitable.
|
| Interceptor getInterceptorFor(Primitive prim, Selector selector) {
|
| + assert(prim is! Interceptor);
|
| Interceptor interceptor = interceptors[prim];
|
| if (interceptor == null) {
|
| interceptor = new Interceptor(prim);
|
|
|