* compile.c (iseq_compile_each): omit creating literal-only range
  to be popped immediately.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57946 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
nobu 2017-03-13 00:11:24 +00:00
Родитель 70474e9bfc
Коммит dae32a40d9
1 изменённых файлов: 5 добавлений и 8 удалений

Просмотреть файл

@ -6088,17 +6088,14 @@ iseq_compile_each0(rb_iseq_t *iseq, LINK_ANCHOR *const ret, NODE *node, int popp
iseq_add_mark_object_compile_time(iseq, val);
ADD_INSN1(ret, line, putobject, val);
}
break;
}
CHECK(COMPILE(ret, "min", (NODE *) node->nd_beg));
CHECK(COMPILE(ret, "max", (NODE *) node->nd_end));
if (popped) {
ADD_INSN(ret, line, pop);
ADD_INSN(ret, line, pop);
}
else {
CHECK(COMPILE_(ret, "min", b, popped));
CHECK(COMPILE_(ret, "max", e, popped));
if (!popped) {
ADD_INSN1(ret, line, newrange, flag);
}
}
break;
}
case NODE_FLIP2: