29 #define id_mesg idMesg 52 calling = &calling_entry;
62 return vm_call0_body(th, calling, &ci_entry, &cc_entry, argv);
65 #if OPT_CALL_CFUNC_WITHOUT_FRAME 86 val = (*cfunc->
invoker)(cfunc->
func, recv, argc, argv);
88 if (reg_cfp == th->
cfp) {
90 rb_bug(
"vm_call0_cfunc: passed_ci error (ci: %p, passed_ci: %p)", ci, th->passed_ci);
95 if (reg_cfp != th->
cfp + 1) {
96 rb_bug(
"vm_call0_cfunc: cfp consistency error");
126 block_handler, (
VALUE)me,
127 0, reg_cfp->
sp, 0, 0);
132 val = (*cfunc->
invoker)(cfunc->
func, recv, argc, argv);
135 rb_bug(
"vm_call0_cfunc_with_frame: cfp consistency error");
170 *reg_cfp->
sp++ = calling->
recv;
171 for (i = 0; i < calling->
argc; i++) {
172 *reg_cfp->
sp++ = argv[i];
229 case OPTIMIZED_METHOD_TYPE_SEND:
232 case OPTIMIZED_METHOD_TYPE_CALL:
257 return vm_call0(th, recv,
id, argc, argv, me);
270 rb_bug(
"vm_call_super: should not be reached");
282 return vm_call0(th, recv,
id, argc, argv, me);
299 if (!th || !(cfp = th->
cfp))
343 return vm_call0(th, recv, mid, argc, argv, me);
362 args->
recv, idMethodMissing,
413 if (!
RTEST(ret))
return def;
421 new_args[0] =
ID2SYM(mid);
428 args.
argc = argc + 1;
461 return vm_call0(th, recv, mid, argc, argv, me);
487 return vm_call0(th, recv, mid, argc, argv, me);
493 #define type_case(t) case t: return #t; 521 default:
return NULL;
535 "method `%"PRIsVALUE"' called on unexpected immediate object (%p)",
538 flags =
RBASIC(recv)->flags;
541 "method `%"PRIsVALUE"' called on terminated object" 550 "method `%"PRIsVALUE"' called on hidden %s object" 552 rb_id2str(mid), typestr, (
void *)recv, flags);
555 "method `%"PRIsVALUE"' called on unexpected %s object" 556 " (%p flags=0x%"PRIxVALUE
")",
557 rb_id2str(mid), typestr, (
void *)recv, flags);
560 "method `%"PRIsVALUE"' called on broken T_???" "(0x%02x) object" 561 " (%p flags=0x%"PRIxVALUE
")",
562 rb_id2str(mid), type, (
void *)recv, flags);
588 if (oid != idMethodMissing) {
600 defined_class =
RBASIC(defined_class)->klass;
688 VALUE args[args_size];
727 format =
rb_fstring_cstr(
"undefined local variable or method `%s' for %s%s%s");
731 format =
rb_fstring_cstr(
"super: no superclass method `%s' for %s%s%s");
754 if (
id == idMethodMissing) {
766 if (!klass)
goto missing;
770 result =
vm_call0(th, obj, idMethodMissing, argc, argv, me);
777 VALUE obj,
int call_status)
833 for (i = 0; i < n; i++) {
834 argv[i] = va_arg(ar,
VALUE);
882 if (!
NIL_P(passed_procval)) {
895 if (prev_cfp->
sp + 1 != argv)
return NULL;
896 return prev_cfp->
sp + 1;
905 VALUE ret, vargv = 0;
945 id = idMethodMissing;
952 ret =
rb_call0(recv,
id, argc, argv, scope,
self);
1043 for (i=0; i<n; i++) {
1044 argv[i] = va_arg(args,
VALUE);
1149 const struct vm_ifunc *
const ifunc,
1161 VALUE block_handler;
1173 retval = (*it_proc) (data1);
1179 if (cfp == escape_cfp) {
1186 if (state ==
TAG_RETRY)
goto iter_retry;
1190 SDR(); fprintf(stderr,
"%p, %p\n", cfp, escape_cfp);
1303 VALUE filename,
int lineno)
1310 volatile VALUE file;
1324 absolute_path = file;
1327 if (!
NIL_P(scope)) {
1335 base_block = &bind->
block;
1345 base_block = █
1352 if ((fname = file) ==
Qundef) {
1358 if (
RTEST(absolute_path))
1438 VALUE src, scope, vfile, vline;
1442 rb_scan_args(argc, argv,
"13", &src, &scope, &vfile, &vline);
1595 VALUE new_block_handler = 0;
1600 int is_lambda =
FALSE;
1607 new_captured = *captured;
1612 new_captured = *captured;
1624 new_captured.
self =
self;
1641 rb_bug(
"rb_yield_refine_block: an iseq block is required");
1651 new_captured.
self = refinement;
1686 return eval_under(klass,
self, code, file, line);
1925 if (tt->
tag == tag) {
2060 val = (*func)(
tag, data, 1, (
const VALUE *)&tag,
Qnil);
2149 while (cfp->
ep != ep) {
VALUE rb_f_public_send(int argc, VALUE *argv, VALUE recv)
#define RBASIC_CLEAR_CLASS(obj)
static VALUE basic_obj_respond_to_missing(rb_thread_t *th, VALUE klass, VALUE obj, VALUE mid, VALUE priv)
static VALUE vm_call_bmethod_body(rb_thread_t *th, struct rb_calling_info *calling, const struct rb_call_info *ci, struct rb_call_cache *cc, const VALUE *argv)
rb_control_frame_t * rb_vm_get_ruby_level_next_cfp(const rb_thread_t *th, const rb_control_frame_t *cfp)
static VALUE loop_stop(VALUE dummy, VALUE exc)
static const VALUE * VM_CF_LEP(const rb_control_frame_t *const cfp)
#define UNDEFINED_METHOD_ENTRY_P(me)
ID rb_check_id(volatile VALUE *)
Returns ID for the given name if it is interned already, or 0.
static VALUE * current_vm_stack_arg(rb_thread_t *th, const VALUE *argv)
#define RUBY_VM_CHECK_INTS(th)
static int check_funcall_respond_to(rb_thread_t *th, VALUE klass, VALUE recv, ID mid)
static void vm_passed_block_handler_set(rb_thread_t *th, VALUE block_handler)
static VALUE vm_call0_cfunc_with_frame(rb_thread_t *th, struct rb_calling_info *calling, const struct rb_call_info *ci, struct rb_call_cache *cc, const VALUE *argv)
#define RUBY_EVENT_C_RETURN
void rb_bug(const char *fmt,...)
static VALUE make_no_method_exception(VALUE exc, VALUE format, VALUE obj, int argc, const VALUE *argv, int priv)
VALUE(* rb_block_call_func_t)(ANYARGS)
static VALUE iterate_method(VALUE obj)
#define va_init_list(a, b)
static VALUE rb_call0(VALUE recv, ID mid, int argc, const VALUE *argv, call_type scope, VALUE self)
VALUE rb_current_realfilepath(void)
VALUE rb_yield_values(int n,...)
const rb_callable_method_entry_t * me
static rb_cref_t * rb_vm_get_cref(const VALUE *ep)
VALUE rb_obj_instance_exec(int argc, const VALUE *argv, VALUE self)
static VALUE send_internal(int argc, const VALUE *argv, VALUE recv, call_type scope)
#define VAR_NOCLOBBERED(var)
void rb_throw(const char *tag, VALUE val)
#define RUBY_VM_PREVIOUS_CONTROL_FRAME(cfp)
#define GetProcPtr(obj, ptr)
VALUE rb_eval_string_protect(const char *str, int *state)
Evaluates the given string in an isolated binding.
VALUE rb_yield_splat(VALUE values)
VALUE rb_check_funcall_with_hook(VALUE recv, ID mid, int argc, const VALUE *argv, rb_check_funcall_hook *hook, VALUE arg)
VALUE rb_ary_subseq(VALUE ary, long beg, long len)
static VALUE method_missing(VALUE obj, ID id, int argc, const VALUE *argv, enum method_missing_reason call_status)
VALUE rb_fstring_cstr(const char *str)
VALUE rb_yield_lambda(VALUE values)
static VALUE singleton_class_for_eval(VALUE self)
VALUE rb_call_super(int argc, const VALUE *argv)
struct vm_ifunc * rb_vm_ifunc_new(VALUE(*func)(ANYARGS), const void *data, int min_argc, int max_argc)
enum method_missing_reason method_missing_reason
VALUE rb_vm_call(rb_thread_t *th, VALUE recv, VALUE id, int argc, const VALUE *argv, const rb_callable_method_entry_t *me)
struct rb_method_definition_struct *const def
static VALUE uncaught_throw_init(int argc, const VALUE *argv, VALUE exc)
const rb_callable_method_entry_t * rb_vm_frame_method_entry(const rb_control_frame_t *cfp)
#define new_args(f, o, r, p, t)
VALUE rb_mod_module_eval(int argc, const VALUE *argv, VALUE mod)
void rb_define_private_method(VALUE klass, const char *name, VALUE(*func)(ANYARGS), int argc)
#define TH_JUMP_TAG(th, st)
VALUE rb_vm_invoke_proc(rb_thread_t *th, rb_proc_t *proc, int argc, const VALUE *argv, VALUE passed_block_handler)
static VALUE check_funcall_failed(struct rescue_funcall_args *args, VALUE e)
#define VM_BLOCK_HANDLER_NONE
static const rb_callable_method_entry_t * aliased_callable_method_entry(const rb_callable_method_entry_t *me)
VALUE rb_check_funcall_default(VALUE recv, ID mid, int argc, const VALUE *argv, VALUE def)
SSL_METHOD *(* func)(void)
static VALUE VM_BH_TO_SYMBOL(VALUE block_handler)
struct rb_iseq_constant_body * body
VALUE rb_protect(VALUE(*proc)(VALUE), VALUE data, int *state)
static VALUE vm_yield_with_cref(rb_thread_t *th, int argc, const VALUE *argv, const rb_cref_t *cref, int is_lambda)
void rb_raise(VALUE exc, const char *fmt,...)
static VALUE rb_yield_0(int argc, const VALUE *argv)
VALUE rb_ivar_get(VALUE, ID)
VALUE rb_check_funcall(VALUE recv, ID mid, int argc, const VALUE *argv)
VALUE rb_obj_is_kind_of(VALUE, VALUE)
static VALUE vm_yield(rb_thread_t *th, int argc, const VALUE *argv)
VALUE rb_catch(const char *tag, VALUE(*func)(), VALUE data)
static VALUE catch_i(VALUE tag, VALUE data)
#define RUBY_VM_CONTROL_FRAME_STACK_OVERFLOW_P(th, cfp)
static VALUE eval_string_from_file_helper(VALUE data)
int st_update(st_table *table, st_data_t key, st_update_callback_func *func, st_data_t arg)
void rb_define_global_function(const char *name, VALUE(*func)(ANYARGS), int argc)
Defines a global function.
static int VM_ENV_LOCAL_P(const VALUE *ep)
static int VM_FRAME_RUBYFRAME_P(const rb_control_frame_t *cfp)
VALUE rb_eval_string_wrap(const char *str, int *state)
Evaluates the given string under a module binding in an isolated binding.
VALUE ruby_eval_string_from_file(const char *str, const char *filename)
int ruby_stack_check(void)
VALUE rb_catch_obj(VALUE t, VALUE(*func)(), VALUE data)
#define RUBY_DTRACE_CMETHOD_ENTRY_HOOK(th, klass, id)
static rb_control_frame_t * vm_push_frame(rb_thread_t *th, const rb_iseq_t *iseq, VALUE type, VALUE self, VALUE specval, VALUE cref_or_me, const VALUE *pc, VALUE *sp, int local_size, int stack_max)
VALUE rb_obj_instance_eval(int argc, const VALUE *argv, VALUE self)
VALUE rb_hash_keys(VALUE hash)
RUBY_SYMBOL_EXPORT_BEGIN typedef unsigned long st_data_t
void rb_exc_raise(VALUE mesg)
static const struct rb_captured_block * VM_BH_TO_CAPT_BLOCK(VALUE block_handler)
VALUE rb_singleton_class(VALUE obj)
Returns the singleton class of obj.
#define RB_TYPE_P(obj, type)
VALUE rb_check_block_call(VALUE obj, ID mid, int argc, const VALUE *argv, VALUE(*bl_proc)(ANYARGS), VALUE data2)
VALUE rb_block_call_func(RB_BLOCK_CALL_FUNC_ARGLIST(yielded_arg, callback_arg))
unsigned short first_lineno
static VALUE check_funcall_missing(rb_thread_t *th, VALUE klass, VALUE recv, ID mid, int argc, const VALUE *argv, int respond, VALUE def)
static VALUE rb_f_local_variables(void)
static VALUE vm_proc_to_block_handler(VALUE procval)
static VALUE adjust_backtrace_in_eval(rb_thread_t *th, VALUE errinfo)
#define RUBY_SAFE_LEVEL_MAX
int rb_block_given_p(void)
static VALUE rb_f_catch(int argc, VALUE *argv)
unsigned int local_table_size
static rb_control_frame_t * vm_get_ruby_level_caller_cfp(const rb_thread_t *th, const rb_control_frame_t *cfp)
#define PASS_PASSED_BLOCK_HANDLER_TH(th)
RUBY_EXTERN VALUE rb_cObject
static VALUE vm_call0(rb_thread_t *th, VALUE recv, ID id, int argc, const VALUE *argv, const rb_callable_method_entry_t *me)
VALUE rb_special_singleton_class(VALUE obj)
RUBY_EXTERN VALUE rb_cBasicObject
VALUE rb_funcall(VALUE recv, ID mid, int n,...)
Calls a method.
VALUE rb_sym_proc_call(ID mid, int argc, const VALUE *argv, VALUE passed_proc)
union rb_call_cache::@195 aux
RUBY_EXTERN VALUE rb_mKernel
static const rb_control_frame_t * THROW_DATA_CATCH_FRAME(const struct vm_throw_data *obj)
VALUE rb_funcall_with_block(VALUE recv, ID mid, int argc, const VALUE *argv, VALUE passed_procval)
void rb_check_funcall_hook(int, VALUE, ID, int, const VALUE *, VALUE)
VALUE rb_define_class(const char *name, VALUE super)
Defines a top-level class.
static VALUE iterate_check_method(VALUE obj)
static void local_var_list_init(struct local_var_list *vars)
static void vm_set_eval_stack(rb_thread_t *th, const rb_iseq_t *iseq, const rb_cref_t *cref, const struct rb_block *base_block)
VALUE rb_f_eval(int argc, const VALUE *argv, VALUE self)
static VALUE vm_make_env_object(rb_thread_t *th, rb_control_frame_t *cfp)
static const struct rb_captured_block * VM_BH_TO_ISEQ_BLOCK(VALUE block_handler)
static const char * rb_type_str(enum ruby_value_type type)
const rb_data_type_t ruby_binding_data_type
#define ALLOCV_N(type, v, n)
#define ALLOCA_N(type, n)
const VALUE defined_class
#define RUBY_DTRACE_CMETHOD_RETURN_HOOK(th, klass, id)
RUBY_EXTERN VALUE rb_cModule
static VALUE eval_under(VALUE under, VALUE self, VALUE src, VALUE file, int line)
static VALUE rb_iterate0(VALUE(*it_proc)(VALUE), VALUE data1, const struct vm_ifunc *const ifunc, rb_thread_t *const th)
#define MEMCPY(p1, p2, type, n)
VALUE rb_obj_alloc(VALUE)
#define RUBY_EVENT_C_CALL
static VALUE vm_yield_with_block(rb_thread_t *th, int argc, const VALUE *argv, VALUE block_handler)
static VALUE rb_f_loop(VALUE self)
void rb_throw_obj(VALUE tag, VALUE value)
VALUE rb_class_new_instance(int, const VALUE *, VALUE)
const rb_callable_method_entry_t * rb_resolve_refined_method_callable(VALUE refinements, const rb_callable_method_entry_t *me)
VALUE rb_funcallv(VALUE recv, ID mid, int argc, const VALUE *argv)
Calls a method.
#define VM_ENV_DATA_INDEX_SPECVAL
static rb_cref_t * vm_cref_push(rb_thread_t *th, VALUE klass, const VALUE *ep, int pushed_by_eval)
VALUE rb_lambda_call(VALUE obj, ID mid, int argc, const VALUE *argv, rb_block_call_func_t bl_proc, int min_argc, int max_argc, VALUE data2)
static const VALUE * VM_CF_PREV_EP(const rb_control_frame_t *const cfp)
void rb_vm_pop_frame(rb_thread_t *th)
#define RARRAY_CONST_PTR(a)
VALUE(* invoker)(VALUE(*func)(ANYARGS), VALUE recv, int argc, const VALUE *argv)
union rb_method_definition_struct::@144 body
static VALUE vm_exec(rb_thread_t *th)
VALUE rb_str_format(int, const VALUE *, VALUE)
const rb_callable_method_entry_t * rb_callable_method_entry(VALUE klass, ID id)
NORETURN(static void raise_method_missing(rb_thread_t *th, int argc, const VALUE *argv, VALUE obj, enum method_missing_reason call_status))
void rb_raise_method_missing(rb_thread_t *th, int argc, const VALUE *argv, VALUE obj, int call_status)
static enum rb_block_handler_type vm_block_handler_type(VALUE block_handler)
VALUE rb_eval_string(const char *str)
Evaluates the given string in an isolated binding.
VALUE rb_vm_backtrace_str_ary(rb_thread_t *th, int lev, int n)
static VALUE yield_under(VALUE under, VALUE self, int argc, const VALUE *argv)
static void raise_method_missing(rb_thread_t *th, int argc, const VALUE *argv, VALUE obj, enum method_missing_reason last_call_status)
VALUE rb_iterate(VALUE(*it_proc)(VALUE), VALUE data1, VALUE(*bl_proc)(ANYARGS), VALUE data2)
int rb_scan_args(int argc, const VALUE *argv, const char *fmt,...)
#define rb_thread_raised_set(th, f)
VALUE rb_ivar_set(VALUE, ID, VALUE)
VALUE rb_f_send(int argc, VALUE *argv, VALUE recv)
void rb_vm_pop_cfunc_frame(void)
static const VALUE * vm_block_ep(const struct rb_block *block)
#define FL_TEST_RAW(x, f)
#define METHOD_ENTRY_VISI(me)
static VALUE uncaught_throw_to_s(VALUE exc)
VALUE rb_vm_top_self(void)
static VALUE uncaught_throw_tag(VALUE exc)
#define EXEC_EVENT_HOOK(th_, flag_, self_, id_, called_id_, klass_, data_)
static VALUE rb_f_throw(int argc, VALUE *argv)
VALUE rb_hash_clear(VALUE hash)
#define RETURN_SIZED_ENUMERATOR(obj, argc, argv, size_fn)
void rb_extend_object(VALUE obj, VALUE module)
static VALUE vm_call_super(rb_thread_t *th, int argc, const VALUE *argv)
static VALUE VM_BH_FROM_IFUNC_BLOCK(const struct rb_captured_block *captured)
VALUE rb_rescue2(VALUE(*b_proc)(ANYARGS), VALUE data1, VALUE(*r_proc)(ANYARGS), VALUE data2,...)
static struct vm_ifunc * rb_vm_ifunc_proc_new(VALUE(*func)(ANYARGS), const void *data)
const struct vm_ifunc * ifunc
VALUE rb_str_new_cstr(const char *)
VALUE rb_proc_lambda_p(VALUE)
#define RARRAY_LENINT(ary)
const rb_method_entry_t * me
static const rb_callable_method_entry_t * rb_search_method_entry(VALUE recv, ID mid)
static rb_method_entry_t * method_entry_get(VALUE klass, ID id, VALUE *defined_class_ptr)
VALUE rb_sym_intern_ascii_cstr(const char *ptr)
struct rb_captured_block captured
VALUE rb_yield_refine_block(VALUE refinement, VALUE refinements)
register unsigned int len
void rb_set_safe_level_force(int)
static VALUE rb_f_loop_size(VALUE self, VALUE args, VALUE eobj)
static VALUE specific_eval(int argc, const VALUE *argv, VALUE klass, VALUE self)
static VALUE eval_string_with_cref(VALUE self, VALUE src, VALUE scope, rb_cref_t *const cref_arg, VALUE filename, int lineno)
static VALUE vm_catch_protect(VALUE, rb_block_call_func *, VALUE, int *, rb_thread_t *volatile)
VALUE rb_mod_module_exec(int argc, const VALUE *argv, VALUE mod)
static VALUE loop_i(void)
static VALUE call_method_entry(rb_thread_t *th, VALUE defined_class, VALUE obj, ID id, const rb_method_entry_t *me, int argc, const VALUE *argv)
static VALUE VM_BH_TO_PROC(VALUE block_handler)
#define RARRAY_ASET(a, i, v)
VALUE rb_iseq_disasm(const rb_iseq_t *iseq)
static VALUE THROW_DATA_VAL(const struct vm_throw_data *obj)
static VALUE vm_call0_body(rb_thread_t *th, struct rb_calling_info *calling, const struct rb_call_info *ci, struct rb_call_cache *cc, const VALUE *argv)
#define UNLIMITED_ARGUMENTS
static int local_var_list_update(st_data_t *key, st_data_t *value, st_data_t arg, int existing)
VALUE rb_module_new(void)
#define RARRAY_AREF(a, i)
static const rb_callable_method_entry_t * refined_method_callable_without_refinement(const rb_callable_method_entry_t *me)
#define METHOD_ENTRY_BASIC(me)
static int check_funcall_callable(rb_thread_t *th, const rb_callable_method_entry_t *me)
unsigned int respond_to_missing
static int vm_collect_local_variables_in_heap(rb_thread_t *th, const VALUE *dfp, const struct local_var_list *vars)
VALUE rb_check_array_type(VALUE ary)
static rb_cref_t * vm_cref_dup(const rb_cref_t *cref)
VALUE rb_catch_protect(VALUE t, rb_block_call_func *func, VALUE data, int *stateptr)
VALUE ruby_eval_string_from_file_protect(const char *str, const char *filename, int *state)
static void local_var_list_add(const struct local_var_list *vars, ID lid)
rb_method_entry_t * rb_add_method(VALUE klass, ID mid, rb_method_type_t type, void *option, rb_method_visibility_t visi)
int rb_method_basic_definition_p(VALUE, ID)
VALUE rb_apply(VALUE recv, ID mid, VALUE args)
Calls a method.
static void VM_FORCE_WRITE_SPECIAL_CONST(const VALUE *ptr, VALUE special_const_value)
static VALUE rb_call(VALUE recv, ID mid, int argc, const VALUE *argv, call_type scope)
VALUE rb_yield_values2(int argc, const VALUE *argv)
VALUE rb_funcall_passing_block(VALUE recv, ID mid, int argc, const VALUE *argv)
int rb_is_local_id(ID id)
static void vm_bind_update_env(rb_binding_t *bind, VALUE envval)
#define rb_thread_raised_p(th, f)
#define SafeStringValue(v)
VALUE rb_funcallv_public(VALUE recv, ID mid, int argc, const VALUE *argv)
Calls a method.
VALUE rb_f_block_given_p(void)
static int vm_respond_to(rb_thread_t *th, VALUE klass, VALUE obj, ID id, int priv)
static VALUE VM_BH_FROM_ISEQ_BLOCK(const struct rb_captured_block *captured)
static VALUE vm_passed_block_handler(rb_thread_t *th)
VALUE rb_yield(VALUE val)
VALUE rb_name_err_mesg_new(VALUE mesg, VALUE recv, VALUE method)
#define StringValuePtr(v)
static void stack_check(rb_thread_t *th)
rb_iseq_t * rb_iseq_compile_with_option(VALUE src, VALUE file, VALUE absolute_path, VALUE line, const struct rb_block *base_block, VALUE opt)
static enum method_missing_reason rb_method_call_status(rb_thread_t *th, const rb_callable_method_entry_t *me, call_type scope, VALUE self)
VALUE rb_source_location(int *pline)
VALUE rb_get_backtrace(VALUE exc)
static struct rb_captured_block * VM_CFP_TO_CAPTURED_BLOCK(const rb_control_frame_t *cfp)
void rb_vm_rewind_cfp(rb_thread_t *th, rb_control_frame_t *cfp)
static VALUE rb_method_missing(int argc, const VALUE *argv, VALUE obj)
VALUE rb_str_intern(VALUE)
#define rb_intern_const(str)
enum rb_method_definition_struct::@144::method_optimized_type optimize_type
#define SPECIAL_CONST_P(x)
#define CHECK_VM_STACK_OVERFLOW(cfp, margin)
static VALUE VM_CF_BLOCK_HANDLER(const rb_control_frame_t *const cfp)
int rb_method_boundp(VALUE, ID, int)
static void CREF_REFINEMENTS_SET(rb_cref_t *cref, VALUE refs)
const struct rb_method_entry_struct *const orig_me
VALUE rb_yield_1(VALUE val)
static VALUE eval_string(VALUE self, VALUE src, VALUE scope, VALUE file, int line)
VALUE rb_eval_cmd(VALUE cmd, VALUE arg, int level)
rb_method_refined_t refined
static VALUE local_var_list_finish(struct local_var_list *vars)
VALUE rb_block_call(VALUE obj, ID mid, int argc, const VALUE *argv, VALUE(*bl_proc)(ANYARGS), VALUE data2)
static VALUE vm_call0_cfunc(rb_thread_t *th, struct rb_calling_info *calling, const struct rb_call_info *ci, struct rb_call_cache *cc, const VALUE *argv)
static VALUE vm_call_iseq_setup(rb_thread_t *th, rb_control_frame_t *cfp, struct rb_calling_info *calling, const struct rb_call_info *ci, struct rb_call_cache *cc)
void rb_define_method(VALUE klass, const char *name, VALUE(*func)(ANYARGS), int argc)
static VALUE vm_yield_lambda_splattable(rb_thread_t *th, VALUE args)
VALUE rb_yield_block(VALUE val, VALUE arg, int argc, const VALUE *argv, VALUE blockarg)
#define Check_TypedStruct(v, t)
static void VM_ENV_FLAGS_SET(const VALUE *ep, VALUE flag)
static VALUE uncaught_throw_value(VALUE exc)
static VALUE rb_eUncaughtThrow
union rb_captured_block::@202 code
VALUE rb_obj_clone(VALUE)
static VALUE check_funcall_exec(struct rescue_funcall_args *args)
VALUE rb_attr_get(VALUE, ID)
VALUE rb_usascii_str_new_cstr(const char *)
rb_iseq_location_t location
#define PASS_PASSED_BLOCK_HANDLER()
VALUE rb_current_receiver(void)
VALUE rb_obj_class(VALUE)
static struct vm_throw_data * THROW_DATA_NEW(VALUE val, const rb_control_frame_t *cf, VALUE st)