if we're not debugging, exit immediately if an error happens.  otherwise rethrow so we get a stack trace.
carry over AST location info when creating these intrinsics
make sure an identifier used in %getGlobal/%setGlobal is valid in our environment.  if it isn't, throw a ReferenceError.  this gives us compile time undefined identifier errors