diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | eval.c | 2 |
2 files changed, 7 insertions, 0 deletions
@@ -1,3 +1,8 @@ +Mon Feb 13 13:27:00 2006 Yukihiro Matsumoto <matz@ruby-lang.org> + + * eval.c (eval): should push class from binding if supplied. + [ruby-core:07347] + Mon Feb 13 00:04:00 2006 Masatoshi SEKI <m_seki@mva.biglobe.ne.jp> * lib/erb.rb (ERB::Compiler): add instance variable @insert_cmd to @@ -6341,6 +6341,7 @@ eval(self, src, scope, file, line) file = ruby_sourcefile; line = ruby_sourceline; } + PUSH_CLASS(data ? data->klass : ruby_class); ruby_in_eval++; if (TYPE(ruby_class) == T_ICLASS) { ruby_class = RBASIC(ruby_class)->klass; @@ -6361,6 +6362,7 @@ eval(self, src, scope, file, line) result = eval_node(self, node); } POP_TAG(); + POP_CLASS(); ruby_in_eval--; if (!NIL_P(scope)) { int dont_recycle = ruby_scope->flags & SCOPE_DONT_RECYCLE; |