Currently, function try blocks are not analyzed to determine whether all control paths return a value. This patch addresses that, and adds test cases for it. This appears to be a relatively simple change required to support this. ~Aaron