• dearblue's avatar
    Extended `OP_EXCEPT` and `OP_RAISE` (`OP_RAISEIF`) instructions · f467b02d
    dearblue authored
    - `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`.
    f467b02d
vm.c 73.4 KB