add untested (*State).Sethook