ruby-changes:7320
From: matz <ko1@a...>
Date: Mon, 25 Aug 2008 23:04:26 +0900 (JST)
Subject: [ruby-changes:7320] Ruby:r18839 (trunk): * compile.c (defined_expr): default defined? should return
matz 2008-08-25 23:04:09 +0900 (Mon, 25 Aug 2008) New Revision: 18839 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=18839 Log: * compile.c (defined_expr): default defined? should return "expression" without evaluating the expression. [ruby-dev:35967] Modified files: trunk/ChangeLog trunk/compile.c Index: ChangeLog =================================================================== --- ChangeLog (revision 18838) +++ ChangeLog (revision 18839) @@ -1,3 +1,8 @@ +Mon Aug 25 23:01:17 2008 Yukihiro Matsumoto <matz@r...> + + * compile.c (defined_expr): default defined? should return + "expression" without evaluating the expression. [ruby-dev:35967] + Mon Aug 25 22:46:01 2008 Yusuke Endoh <mame@t...> * test/ruby/test_thread.rb (test_status_and_stop_p): reduce the risk Index: compile.c =================================================================== --- compile.c (revision 18838) +++ compile.c (revision 18839) @@ -2336,6 +2336,7 @@ case NODE_ZARRAY: case NODE_AND: case NODE_OR: + default: estr = "expression"; break; @@ -2478,33 +2479,6 @@ case NODE_CVASGN: estr = "assignment"; break; - - default:{ - LABEL *lstart = NEW_LABEL(nd_line(node)); - LABEL *lend = NEW_LABEL(nd_line(node)); - VALUE ensure = NEW_CHILD_ISEQVAL(NEW_NIL(), - rb_str_concat(rb_str_new2 - ("defined guard in "), - iseq->name), - ISEQ_TYPE_DEFINED_GUARD); - - ADD_LABEL(ret, lstart); - COMPILE(ret, "defined expr (others)", node); - if (!lfinish[1]) { - lfinish[1] = NEW_LABEL(nd_line(node)); - } - ADD_INSNL(ret, nd_line(node), branchunless, lfinish[1]); - if (needstr) { - ADD_INSN1(ret, nd_line(node), putstring, rb_str_new2("expression")); - } - else { - ADD_INSN1(ret, nd_line(node), putobject, Qtrue); - } - ADD_LABEL(ret, lend); - - ADD_CATCH_ENTRY(CATCH_TYPE_RESCUE, lstart, lend, ensure, lfinish[1]); - return 1; - } /* end of default */ } if (estr != 0) { -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/