summaryrefslogtreecommitdiffhomepage
path: root/doc/opcode.md
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 /doc/opcode.md
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 'doc/opcode.md')
-rw-r--r--doc/opcode.md2
1 files changed, 1 insertions, 1 deletions
diff --git a/doc/opcode.md b/doc/opcode.md
index 98d29cdc0..d7e620350 100644
--- a/doc/opcode.md
+++ b/doc/opcode.md
@@ -66,7 +66,7 @@ sign) of operands.
| OP_EXCEPT | B | R(a) = exc |
| OP_RESCUE | BB | R(b) = R(a).isa?(R(b)) |
| OP_POPERR | B | a.times{rescue_pop()} |
-| OP_RAISE | B | raise(R(a)) |
+| OP_RAISEIF | B | raise(R(a)) if R(a) |
| OP_EPUSH | B | ensure_push(SEQ[a]) |
| OP_EPOP | B | A.times{ensure_pop().call} |
| OP_SENDV | BB | R(a) = call(R(a),Syms(b),*R(a+1)) |