From 06f49b3f84e799f08a80b16054eda916f2d32819 Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Sat, 7 Aug 2021 12:11:38 +0900 Subject: codegen.c: need to push the value when the loop was eliminated. --- mrbgems/mruby-compiler/core/codegen.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'mrbgems/mruby-compiler/core/codegen.c') diff --git a/mrbgems/mruby-compiler/core/codegen.c b/mrbgems/mruby-compiler/core/codegen.c index e4445c1bf..a3a73fafa 100644 --- a/mrbgems/mruby-compiler/core/codegen.c +++ b/mrbgems/mruby-compiler/core/codegen.c @@ -2165,14 +2165,20 @@ codegen(codegen_scope *s, node *tree, int val) case NODE_INT: case NODE_STR: if (nt == NODE_UNTIL) { - if (val) genop_1(s, OP_LOADNIL, cursp()); + if (val) { + genop_1(s, OP_LOADNIL, cursp()); + push(); + } goto exit; } break; case NODE_FALSE: case NODE_NIL: if (nt == NODE_WHILE) { - if (val) genop_1(s, OP_LOADNIL, cursp()); + if (val) { + genop_1(s, OP_LOADNIL, cursp()); + push(); + } goto exit; } break; -- cgit v1.2.3