keep track of branch positions
deal with throw, return, break and continue