mirror of
https://github.com/mruby/mruby
synced 2026-06-08 16:11:16 +00:00
raise error if string arg is given to Kernel#instance_eval
This commit is contained in:
+6
-6
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user