summaryrefslogtreecommitdiffhomepage
path: root/src/codegen.c
diff options
context:
space:
mode:
authorDaniel Bovensiepen <[email protected]>2013-01-08 10:07:55 +0800
committerDaniel Bovensiepen <[email protected]>2013-01-08 10:07:55 +0800
commita096dc9e3b01f4fc31fc1f910e254813884a776e (patch)
treecd353be9cb1df5e009d130ceabfcd627e7fb34a7 /src/codegen.c
parentaf75d8de2ca6b3eda97c588334b15920e856a53b (diff)
parent8c31c2006be7afa8da1fd01180955b108aee868c (diff)
downloadmruby-a096dc9e3b01f4fc31fc1f910e254813884a776e.tar.gz
mruby-a096dc9e3b01f4fc31fc1f910e254813884a776e.zip
Merge remote-tracking branch 'mruby/master' into array-clear
Diffstat (limited to 'src/codegen.c')
-rw-r--r--src/codegen.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/codegen.c b/src/codegen.c
index ffa13d647..c1a62320d 100644
--- a/src/codegen.c
+++ b/src/codegen.c
@@ -1099,6 +1099,10 @@ codegen(codegen_scope *s, node *tree, int val)
genop(s, MKOP_AsBx(OP_JMPNOT, cursp(), 0));
codegen(s, tree->cdr->car, val);
+ if (val && !(tree->cdr->car)) {
+ genop(s, MKOP_A(OP_LOADNIL, cursp()));
+ push();
+ }
if (e) {
if (val) pop();
pos2 = new_label(s);