1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

compile.c: defined? with empty expression

* compile.c (iseq_compile_each): fix of defined? with empty
  expression.  [ruby-core:53999] [Bug #8220]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40124 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
nobu 2013-04-05 10:40:03 +00:00
parent 7862695406
commit 0c5d73e80b
3 changed files with 16 additions and 1 deletions

View file

@ -1,3 +1,8 @@
Fri Apr 5 19:39:52 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
* compile.c (iseq_compile_each): fix of defined? with empty
expression. [ruby-core:53999] [Bug #8220]
Fri Apr 5 13:22:59 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
* ext/curses/curses.c (Init_curses): fix implementation function,

View file

@ -5175,7 +5175,12 @@ iseq_compile_each(rb_iseq_t *iseq, LINK_ANCHOR *ret, NODE * node, int poped)
break;
}
case NODE_DEFINED:{
if (!poped) {
if (poped) break;
if (!node->nd_head) {
VALUE str = rb_iseq_defined_string(DEFINED_NIL);
ADD_INSN1(ret, nd_line(node), putobject, str);
}
else {
LABEL *lfinish[2];
lfinish[0] = NEW_LABEL(line);
lfinish[1] = 0;

View file

@ -13,6 +13,11 @@ class TestSyntax < Test::Unit::TestCase
eom
end
def test_defined_empty_argument
bug8220 = '[ruby-core:53999] [Bug #8220]'
assert_ruby_status(%w[--disable-gem], 'puts defined? ()', bug8220)
end
def test_must_ascii_compatible
require 'tempfile'
f = Tempfile.new("must_ac_")