| 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 cf67fe109248b0bbcee33913931442b9f84181e1..01ebde7325d4cb8d3398b8a358c0b21a508fed54 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());
|
| }
|
| @@ -177,7 +171,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.
|
| @@ -201,18 +199,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) {
|
| @@ -246,6 +237,7 @@ class UnsugarVisitor extends RecursiveVisitor {
|
| /// getInterceptor call closer to its use when this is profitable.
|
| Interceptor getInterceptorFor(Primitive prim, Selector selector,
|
| SourceInformation sourceInformation) {
|
| + assert(prim is! Interceptor);
|
| Interceptor interceptor = interceptors[prim];
|
| if (interceptor == null) {
|
| interceptor = new Interceptor(prim, sourceInformation);
|
|
|