diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2018-07-23 18:26:24 +0900 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2018-07-23 18:26:24 +0900 |
| commit | b09d2eb90074c50ed83d4d10d3fe0393bc9e43da (patch) | |
| tree | 1152292a06d86a489eb421949091453beb4a6bd5 /mrbgems/mruby-eval/test/eval.rb | |
| parent | cb42c9875728422e46270c3bbbbfa30578f25a4c (diff) | |
| download | mruby-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.rb | 17 |
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 } |
