Skip to content

Commit ada264a

Browse files
committed
instance_eval env should remake Fix #3191
1 parent 501e1ef commit ada264a

File tree

2 files changed

+3
-0
lines changed

2 files changed

+3
-0
lines changed

mrbgems/mruby-eval/src/eval.c

+1
Original file line numberDiff line numberDiff line change
@@ -247,6 +247,7 @@ f_instance_eval(mrb_state *mrb, mrb_value self)
247247
cv = mrb_singleton_class(mrb, self);
248248
c->ci->target_class = mrb_class_ptr(cv);
249249
proc = create_proc_from_string(mrb, s, len, mrb_nil_value(), file, line);
250+
mrb->c->ci->env = NULL;
250251
return mrb_vm_run(mrb, proc, mrb->c->stack[0], 0);
251252
}
252253
else {

mrbgems/mruby-eval/test/eval.rb

+2
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,8 @@
6464
assert_equal(['test.rb', 10]) { obj.instance_eval('[__FILE__, __LINE__]', 'test.rb', 10)}
6565
assert_equal('test') { obj.instance_eval('@test') }
6666
assert_equal('test') { obj.instance_eval { @test } }
67+
o = Object.new
68+
assert_equal ['', o, o], o.instance_eval("[''].each { |s| break [s, o, self] }")
6769
end
6870

6971
assert('Kernel.#eval(string) context') do

0 commit comments

Comments
 (0)