anchor.diff:    };
   
     _translateCatchClauses(List<ast.CatchClause> clauses, rk, ek, sk) {
  +    var savedExceptionName = currentExceptionName;
       var catchName = newName('catch');
       var exceptionName, stackTraceName, catchBlock;
       if (clauses.isEmpty) {
  -      exceptionName = newName('e');
  +      exceptionName = currentExceptionName = newName('e');
         stackTraceName = newName('s');
         catchBlock = make.block([ek.apply(exceptionName, stackTraceName)]);
       } else {
  
positive.code:           [make.catchClause(null, exceptionName, stackTraceName,
                 make.block([ek.apply(exceptionName, stackTraceName)]))]);
      }
      addStatement(make.functionDeclarationStatement(catchName,
          [exceptionName, stackTraceName], catchBlock));
      return catchName;
  
negative.code:     };
    }
  
    visitReturnStatement(ast.ReturnStatement node) => (rk, ek, sk) {
      return (node.expression == null)
          ? rk(make.nullLiteral())
  