aboutsummaryrefslogtreecommitdiffstats
path: root/eval.c
diff options
context:
space:
mode:
Diffstat (limited to 'eval.c')
-rw-r--r--eval.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/eval.c b/eval.c
index 860ec0ab12..fae1ffce7d 100644
--- a/eval.c
+++ b/eval.c
@@ -2941,6 +2941,7 @@ rb_eval(self, n)
case NODE_ITER:
case NODE_FOR:
+ case NODE_LAMBDA:
{
PUSH_TAG(PROT_LOOP);
PUSH_BLOCK(node->nd_var, node->nd_body);
@@ -2952,6 +2953,10 @@ rb_eval(self, n)
if (nd_type(node) == NODE_ITER) {
result = rb_eval(self, node->nd_iter);
}
+ else if (nd_type(node) == NODE_LAMBDA) {
+ ruby_iter->iter = ruby_frame->iter = ITER_CUR;
+ result = rb_block_proc();
+ }
else {
VALUE recv;