summaryrefslogtreecommitdiffhomepage
path: root/mrbgems
diff options
context:
space:
mode:
authordearblue <[email protected]>2020-05-24 11:44:31 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2020-10-12 16:21:32 +0900
commitf467b02d4598ab64d98727348e8a9c4f04fc9b83 (patch)
treeb5c4fdda5178b33ce9014054df0c0ec4b6caa93a /mrbgems
parenta54a3df32c379a6953664f1d9241c731066915ec (diff)
downloadmruby-f467b02d4598ab64d98727348e8a9c4f04fc9b83.tar.gz
mruby-f467b02d4598ab64d98727348e8a9c4f04fc9b83.zip
Extended `OP_EXCEPT` and `OP_RAISE` (`OP_RAISEIF`) instructions
- `OP_EXCEPT` checks if `mrb->exc` is `NULL`, `MRB_TT_EXCEPTION` or `MRB_TT_BREAK`. If `mrb->exc` is `NULL`, it will be replaced with `nil`. - If `OP_RAISE` is `nil`, it does nothing and the immediately following instruction is executed (like `OP_NOP`). Also, in case of `RBreak` object, it moves to the processing for `break`. With this change, the instruction name is changed from `OP_RAISE` to `OP_RAISEIF`.
Diffstat (limited to 'mrbgems')
-rw-r--r--mrbgems/mruby-compiler/core/codegen.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/mrbgems/mruby-compiler/core/codegen.c b/mrbgems/mruby-compiler/core/codegen.c
index e55b6791d..7911ecb36 100644
--- a/mrbgems/mruby-compiler/core/codegen.c
+++ b/mrbgems/mruby-compiler/core/codegen.c
@@ -1533,7 +1533,7 @@ codegen(codegen_scope *s, node *tree, int val)
}
if (pos1) {
dispatch(s, pos1);
- genop_1(s, OP_RAISE, exc);
+ genop_1(s, OP_RAISEIF, exc);
}
}
pop();