diff options
| author | Yukihiro Matsumoto <[email protected]> | 2012-07-14 15:39:53 +0900 |
|---|---|---|
| committer | Yukihiro Matsumoto <[email protected]> | 2012-07-14 15:39:53 +0900 |
| commit | 72f7c51bc0bcef4096db8d57e7e5ab2a342e383f (patch) | |
| tree | a7ddf07bfa1c2a97819f5a9253c1f50b899e0973 /src/parse.y | |
| parent | afb983e26f03d55ab48c8e47cec58d757df6eeda (diff) | |
| download | mruby-72f7c51bc0bcef4096db8d57e7e5ab2a342e383f.tar.gz mruby-72f7c51bc0bcef4096db8d57e7e5ab2a342e383f.zip | |
mruby should print error properly
Diffstat (limited to 'src/parse.y')
| -rw-r--r-- | src/parse.y | 5 |
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 |
