intercepting functions with esprima... suprisingly doesn't break everything