Commit 4348639e authored by Yukihiro Matsumoto's avatar Yukihiro Matsumoto

raise error if string arg is given to Kernel#instance_eval

parent b5ffbea4
......@@ -557,12 +557,10 @@ mrb_obj_init_copy(mrb_state *mrb, mrb_value self)
/* 15.3.1.3.18 */
/*
* call-seq:
* obj.instance_eval(string [, filename [, lineno]] ) -> obj
* obj.instance_eval {| | block } -> obj
*
* Evaluates a string containing Ruby source code, or the given block,
* within the context of the receiver (_obj_). In order to set the
* context, the variable +self+ is set to _obj_ while
* Evaluates the given block,within the context of the receiver (_obj_).
* In order to set the context, the variable +self+ is set to _obj_ while
* the code is executing, giving the code access to _obj_'s
* instance variables. In the version of <code>instance_eval</code>
* that takes a +String+, the optional second and third
......@@ -580,9 +578,11 @@ mrb_obj_init_copy(mrb_state *mrb, mrb_value self)
mrb_value
mrb_obj_instance_eval(mrb_state *mrb, mrb_value self)
{
mrb_value b;
mrb_value a, b;
mrb_get_args(mrb, "&", &b);
if (mrb_get_args(mrb, "|S&", &a, &b) == 1) {
mrb_raise(mrb, mrb->eRuntimeError_class, "instance_eval with string not implemented");
}
return mrb_yield_with_self(mrb, b, 0, 0, self);
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment