diff options
| author | Bouke van der Bijl <[email protected]> | 2016-11-16 14:01:49 -0500 |
|---|---|---|
| committer | Bouke van der Bijl <[email protected]> | 2016-11-24 10:06:15 -0500 |
| commit | 4523aaec015ff0bf900710efc2ec3411e8841fb1 (patch) | |
| tree | fbb6896cf5cdda9625664eb5d67379a7d988ca81 /mrbgems/mruby-object-ext | |
| parent | a630c4f413f6af764e68210430e8b61a435d38d7 (diff) | |
| download | mruby-4523aaec015ff0bf900710efc2ec3411e8841fb1.tar.gz mruby-4523aaec015ff0bf900710efc2ec3411e8841fb1.zip | |
Fix segfault when defining class inside instance_exec on primitive
Diffstat (limited to 'mrbgems/mruby-object-ext')
| -rw-r--r-- | mrbgems/mruby-object-ext/test/object.rb | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/mrbgems/mruby-object-ext/test/object.rb b/mrbgems/mruby-object-ext/test/object.rb index fe56f1ec5..f0742f8ce 100644 --- a/mrbgems/mruby-object-ext/test/object.rb +++ b/mrbgems/mruby-object-ext/test/object.rb @@ -23,3 +23,31 @@ assert('Object#tap') do ], ret assert_equal(:tap_ok, Class.new {def m; tap{return :tap_ok}; end}.new.m) end + +assert('instance_exec on primitives with class and module definition') do + begin + class A + 1.instance_exec do + class B + end + end + end + + assert_kind_of Class, A::B + ensure + Object.remove_const :A + end + + begin + class A + 1.instance_exec do + module B + end + end + end + + assert_kind_of Module, A::B + ensure + Object.remove_const :A + end +end |
