/*
 * call-seq:
 *   proc.body => Node
 *
 * Returns the Proc's body Node.
 *
 * On YARV, this will return the instruction sequence for the proc's
 * block.
 */
static VALUE proc_body(VALUE self)
{
#ifdef RUBY_HAS_YARV
  rb_proc_t * p;
  GetProcPtr(self, p);
  return p->block.iseq->self;
#else
  struct BLOCK * b;
  if(ruby_safe_level >= 4)
  {
    /* no access to potentially sensitive data from the sandbox */
    rb_raise(rb_eSecurityError, "Insecure: can't get proc body");
  }
  Data_Get_Struct(self, struct BLOCK, b);
  return wrap_node(b->body);
#endif
}