diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2017-02-28 11:51:17 +0900 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2017-02-28 11:51:17 +0900 |
| commit | dc56bbecc81b5d04d3bf9ab337f4ebf7024f654f (patch) | |
| tree | 8a2cf4a7538f77167fcd079b5723a51caf442591 | |
| parent | fb3243e09616652c037b7392b9c54af74f15d423 (diff) | |
| download | mruby-dc56bbecc81b5d04d3bf9ab337f4ebf7024f654f.tar.gz mruby-dc56bbecc81b5d04d3bf9ab337f4ebf7024f654f.zip | |
Ignore empty ensure clause.
| -rw-r--r-- | mrbgems/mruby-compiler/core/codegen.c | 7 |
1 files changed, 6 insertions, 1 deletions
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: |
