anchor.diff:        visit(node.finallyBlock)(rk, ek, () {
           addStatement(make.functionInvocation(finallyContName));
         });
  +      // Entering the finally block from the try block of a try/catch/finally
  +      // is one of two places where we jump out of a place to one with a
  +      // different handler (the other is entering the catch block from the try
  +      // block.  We need to have an appropriate exception handler in place for
  +      // catching synchronous exceptions.
  +      var exceptionName = newName('e');
  +      var stackTraceName = newName('s');
  +      if (node.catchClauses.isNotEmpty) {
  +        finallyBlock = make.tryStatement(finallyBlock,
  +            [make.catchClause(null, exceptionName, stackTraceName,
  +                 make.block([make.functionInvocation(ek,
  +                     [make.identifier(exceptionName),
  +                      make.identifier(stackTraceName)])]))]);
  +      }
   
         breakTargets = breakTargets.map(newBreakTarget).toList();
         continueTargets = continueTargets.map(newContinueTarget).toList();
  
positive.code:     breakTargets = savedBreakTargets;
      continueTargets = savedContinueTargets;
  
      if (finallyBlock != null) {
        addStatement(make.functionDeclarationStatement(
            finallyName, [finallyContName], finallyBlock));
      }
      var exceptionName = newName('e');
      var stackTraceName = newName('s');
      var catchBlock;
  
negative.code: 
      currentBlock = savedBlock;
      var catchName = newName('catch');
      // Entering the catch block from the try block is one of two places
      // where we jump out of a place to one with a different handler (the other
      // is entering the finally block from the try block of try/catch/finally).
      // We need to have an appropriate exception handler in place for catching
      // synchronous exceptions.
      catchBlock = make.tryStatement(catchBlock,
          [make.catchClause(null, exceptionName, stackTraceName,
               make.block([make.functionInvocation(ek,
                   [make.identifier(exceptionName),
                    make.identifier(stackTraceName)])]))]);
      addStatement(make.functionDeclarationStatement(catchName,
          [exceptionName, stackTraceName], catchBlock));
      return catchName;
  