summaryrefslogtreecommitdiffhomepage
path: root/mrbgems/mruby-eval/test/eval.rb
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2018-07-23 18:26:24 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2018-07-23 18:26:24 +0900
commitb09d2eb90074c50ed83d4d10d3fe0393bc9e43da (patch)
tree1152292a06d86a489eb421949091453beb4a6bd5 /mrbgems/mruby-eval/test/eval.rb
parentcb42c9875728422e46270c3bbbbfa30578f25a4c (diff)
downloadmruby-b09d2eb90074c50ed83d4d10d3fe0393bc9e43da.tar.gz
mruby-b09d2eb90074c50ed83d4d10d3fe0393bc9e43da.zip
Kernel#instance_eval should define singleton methods; fix #4069
Diffstat (limited to 'mrbgems/mruby-eval/test/eval.rb')
-rw-r--r--mrbgems/mruby-eval/test/eval.rb17
1 files changed, 16 insertions, 1 deletions
diff --git a/mrbgems/mruby-eval/test/eval.rb b/mrbgems/mruby-eval/test/eval.rb
index be43412f7..8cf658f29 100644
--- a/mrbgems/mruby-eval/test/eval.rb
+++ b/mrbgems/mruby-eval/test/eval.rb
@@ -100,7 +100,22 @@ assert('Object#instance_eval with begin-rescue-ensure execution order') do
assert_equal([:enter_raise_hell, :begin, :rescue, :ensure], hell_raiser.raise_hell)
end
-assert('Kernel.#eval(strinng) Issue #4021') do
+assert('Kernel#instance_eval() to define singleton methods Issue #3141') do
+ foo_class = Class.new do
+ def bar(x)
+ instance_eval "def baz; #{x}; end"
+ end
+ end
+
+ f1 = foo_class.new
+ f2 = foo_class.new
+ f1.bar 1
+ f2.bar 2
+ assert_equal(1){f1.baz}
+ assert_equal(2){f2.baz}
+end
+
+assert('Kernel.#eval(string) Issue #4021') do
assert_equal('FOO') { (eval <<'EOS').call }
foo = "FOO"
Proc.new { foo }