anchor.diff:    @override
     void endFunctionExpression(Token beginToken, Token token) {
       debugEvent("FunctionExpression");
  -    kernel.Statement body = popStatement();
  +    kernel.Statement body = toKernelStatement(popStatement());
       AsyncMarker asyncModifier = pop();
       exitLocalScope();
       FormalParameters<Arguments> formals = pop();
  
positive.code:   @override
    void endWhileStatement(Token whileKeyword, Token endToken) {
      debugEvent("WhileStatement");
      kernel.Statement body = popStatement();
      Expression condition = popForValue();
      JumpTarget continueTarget = exitContinueTarget();
      JumpTarget breakTarget = exitBreakTarget();
  
negative.code: 
    @override
    void endTryStatement(int catchCount, Token tryKeyword, Token finallyKeyword) {
      kernel.Statement finallyBlock =
          toKernelStatement(popStatementIfNotNull(finallyKeyword));
      List<Catch> catches = popList(catchCount);
      kernel.Statement tryBlock = toKernelStatement(popStatement());
      if (compileTimeErrorInTry == null) {
        if (catches != null) {
          tryBlock = new ShadowTryCatch(tryBlock, catches);
  