From b1fa180ea31d1d3030e088b873b248c1a39c22ac Mon Sep 17 00:00:00 2001 From: ksss Date: Mon, 26 Sep 2016 12:17:46 +0900 Subject: Fix unexpected behavior with break ``` def yie yield end def bre yie { 1+1 break } end p bre #=> display 2, but should be nil ``` --- mrbgems/mruby-compiler/core/codegen.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/mrbgems/mruby-compiler/core/codegen.c b/mrbgems/mruby-compiler/core/codegen.c index 6e9c3c147..efdd77888 100644 --- a/mrbgems/mruby-compiler/core/codegen.c +++ b/mrbgems/mruby-compiler/core/codegen.c @@ -2852,6 +2852,9 @@ loop_break(codegen_scope *s, node *tree) loop->pc3 = tmp; } else { + if (!tree) { + genop(s, MKOP_A(OP_LOADNIL, cursp())); + } genop(s, MKOP_AB(OP_RETURN, cursp(), OP_R_BREAK)); } } -- cgit v1.2.3