diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2021-06-17 07:54:54 +0900 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2021-06-17 07:54:54 +0900 |
| commit | a528834df7a0baf16b7c505ed4c0b7b1b0347f8e (patch) | |
| tree | 364d84e02dbb1fbfb46ded0acac48eb71802eca5 | |
| parent | 7893cbb5232f9bbefbaa650998fce49f59908512 (diff) | |
| download | mruby-a528834df7a0baf16b7c505ed4c0b7b1b0347f8e.tar.gz mruby-a528834df7a0baf16b7c505ed4c0b7b1b0347f8e.zip | |
Revert "`instance_eval` for classes and modules should behave as `class_eval`."
This reverts commit ee3017496ba60ca418b5e54c1f8f5d8b38524a52.
I misunderstood something and the new behavior was different from CRuby.
The issue was reported by @dearblue, regarding #5478
| -rw-r--r-- | src/vm.c | 12 |
1 files changed, 1 insertions, 11 deletions
@@ -792,21 +792,11 @@ mrb_value mrb_obj_instance_eval(mrb_state *mrb, mrb_value self) { mrb_value a, b; - struct RClass *c; if (mrb_get_args(mrb, "|S&", &a, &b) == 1) { mrb_raise(mrb, E_NOTIMP_ERROR, "instance_eval with string not implemented"); } - switch (mrb_type(self)) { - case MRB_TT_MODULE: - case MRB_TT_CLASS: - case MRB_TT_ICLASS: - c = mrb_class_ptr(self); - break; - default: - c = mrb_singleton_class_ptr(mrb, self); - } - return eval_under(mrb, self, b, c); + return eval_under(mrb, self, b, mrb_singleton_class_ptr(mrb, self)); } MRB_API mrb_value |
