/*
* 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
}