summaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorYukihiro Matsumoto <[email protected]>2012-07-14 15:39:53 +0900
committerYukihiro Matsumoto <[email protected]>2012-07-14 15:39:53 +0900
commit72f7c51bc0bcef4096db8d57e7e5ab2a342e383f (patch)
treea7ddf07bfa1c2a97819f5a9253c1f50b899e0973 /src
parentafb983e26f03d55ab48c8e47cec58d757df6eeda (diff)
downloadmruby-72f7c51bc0bcef4096db8d57e7e5ab2a342e383f.tar.gz
mruby-72f7c51bc0bcef4096db8d57e7e5ab2a342e383f.zip
mruby should print error properly
Diffstat (limited to 'src')
-rw-r--r--src/parse.y5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/parse.y b/src/parse.y
index 75a33c5b7..c766b3927 100644
--- a/src/parse.y
+++ b/src/parse.y
@@ -4871,6 +4871,7 @@ static mrb_value
load_exec(mrb_state *mrb, parser_state *p, mrbc_context *c)
{
int n;
+ mrb_value v;
if (!p) {
mrb_parser_free(p);
@@ -4900,7 +4901,9 @@ load_exec(mrb_state *mrb, parser_state *p, mrbc_context *c)
if (c->dump_result) codedump_all(mrb, n);
if (c->no_exec) return mrb_fixnum_value(n);
}
- return mrb_run(mrb, mrb_proc_new(mrb, mrb->irep[n]), mrb_top_self(mrb));
+ v = mrb_run(mrb, mrb_proc_new(mrb, mrb->irep[n]), mrb_top_self(mrb));
+ if (!mrb->exc) return mrb_undef_value();
+ return v;
}
mrb_value