rewrite this as 

    return _zone.run(...);

This implies that you need to change the behavior of the run method to return the value from the delegate funciton.