anchor.diff:      } else {
         assert(_targetFunction != null && _targetFunction is ir.FunctionNode);
         returnStatement.expression.accept(this);
  -      value = typeBuilder.potentiallyCheckOrTrustType(pop(),
  -          astAdapter.getFunctionReturnType(_targetFunction));
  +      value = typeBuilder.potentiallyCheckOrTrustType(
  +          pop(), astAdapter.getFunctionReturnType(_targetFunction));
       }
       // TODO(het): Add source information
       // TODO(het): Set a return value instead of closing the function when we
  
positive.code: 
    final Map<ir.VariableDeclaration, HInstruction> letBindings =
        <ir.VariableDeclaration, HInstruction>{};
  
    KernelSsaBuilder(
        this.targetElement,
  
negative.code: 
    @override
    void visitThrow(ir.Throw throwNode) {
      _visitThrowExpression(throwNode.expression);
      if (isReachable) {
        push(new HThrowExpression(pop(), null));
        isReachable = false;
      }
    }
  
    void _visitThrowExpression(ir.Expression expression) {
      bool old = _inExpressionOfThrow;
      try {
        _inExpressionOfThrow = true;
        expression.accept(this);
      } finally {
        _inExpressionOfThrow = old;
      }
    }
  
  