diff --git a/src/vm.c b/src/vm.c index 2f1d42163..9b03789db 100644 --- a/src/vm.c +++ b/src/vm.c @@ -2703,9 +2703,10 @@ RETRY_TRY_BLOCK: if (kidx < 0 || !mrb_hash_p(kdict=regs[kidx]) || !mrb_hash_key_p(mrb, kdict, k)) { RAISE_FORMAT(mrb, E_ARGUMENT_ERROR, "missing keyword: %v", k); } + v = mrb_hash_delete_key(mrb, kdict, k); - regs[a] = v; ci = mrb->c->ci; + regs[a] = v; NEXT; }