From dc56bbecc81b5d04d3bf9ab337f4ebf7024f654f Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Tue, 28 Feb 2017 11:51:17 +0900 Subject: Ignore empty ensure clause. --- mrbgems/mruby-compiler/core/codegen.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/mrbgems/mruby-compiler/core/codegen.c b/mrbgems/mruby-compiler/core/codegen.c index ad4da12f7..7ce91b826 100644 --- a/mrbgems/mruby-compiler/core/codegen.c +++ b/mrbgems/mruby-compiler/core/codegen.c @@ -1360,7 +1360,9 @@ codegen(codegen_scope *s, node *tree, int val) break; case NODE_ENSURE: - { + if (!tree->cdr || !tree->cdr->cdr || + ((intptr_t)tree->cdr->cdr->car == NODE_BEGIN && + tree->cdr->cdr->cdr)) { int idx; int epush = s->pc; @@ -1372,6 +1374,9 @@ codegen(codegen_scope *s, node *tree, int val) s->ensure_level--; genop_peep(s, MKOP_A(OP_EPOP, 1), NOVAL); } + else { /* empty ensure ignored */ + codegen(s, tree->car, val); + } break; case NODE_LAMBDA: -- cgit v1.2.3