From 26169f9e25788caf2781a92087f489e5e5fdc0c9 Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Sat, 11 Mar 2017 16:32:29 +0900 Subject: Enhance OP_RESCUE to take B operand fas matching exception; ref #3487 --- include/mruby/opcode.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'include') diff --git a/include/mruby/opcode.h b/include/mruby/opcode.h index 3d4544817..9a5116275 100644 --- a/include/mruby/opcode.h +++ b/include/mruby/opcode.h @@ -82,7 +82,8 @@ enum { OP_JMPIF,/* A sBx if R(A) pc+=sBx */ OP_JMPNOT,/* A sBx if !R(A) pc+=sBx */ OP_ONERR,/* sBx rescue_push(pc+sBx) */ - OP_RESCUE,/* A B R(A) := exc; R(B) := matched (ignore if A/B=0) */ + OP_RESCUE,/* A B C if A (if C exc=R(A) else R(A) := exc); + if B R(B) := exc.isa?(R(B)); clear(exc) */ OP_POPERR,/* A A.times{rescue_pop()} */ OP_RAISE,/* A raise(R(A)) */ OP_EPUSH,/* Bx ensure_push(SEQ[Bx]) */ -- cgit v1.2.3