* compile.c (defined_expr), insns.def (defined): fix to pass a Symbol

object such as :$foo for the "defined?($foo)" expression
  on defined instruction.  This patch fixes ISeq#to_a/load.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26862 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
ko1 2010-03-09 19:21:37 +00:00
parent bbcb186ae6
commit 9da12c5850
4 changed files with 10 additions and 4 deletions

View file

@ -2623,7 +2623,7 @@ defined_expr(rb_iseq_t *iseq, LINK_ANCHOR *ret,
case NODE_GVAR:
ADD_INSN(ret, nd_line(node), putnil);
ADD_INSN3(ret, nd_line(node), defined, INT2FIX(DEFINED_GVAR),
((VALUE)node->nd_entry) | 1, needstr);
ID2SYM(node->nd_entry->id), needstr);
return 1;
case NODE_CVAR: