Allow break from a block called by mrb_yield; close #3359

This means #3701 is now OK to merge.
This commit is contained in:
Yukihiro "Matz" Matsumoto
2017-06-16 11:29:47 +09:00
parent 9e6a3f6c95
commit d4d99dd6d7
4 changed files with 39 additions and 6 deletions
+7
View File
@@ -32,6 +32,13 @@ MRB_API mrb_noreturn void mrb_no_method_error(mrb_state *mrb, mrb_sym id, mrb_va
/* declaration for fail method */
MRB_API mrb_value mrb_f_raise(mrb_state*, mrb_value);
struct RBreak {
MRB_OBJECT_HEADER;
struct iv_tbl *iv;
struct RProc *proc;
mrb_value val;
};
/**
* Protect
*
+2 -1
View File
@@ -116,7 +116,8 @@ enum mrb_vtype {
MRB_TT_DATA, /* 21 */
MRB_TT_FIBER, /* 22 */
MRB_TT_ISTRUCT, /* 23 */
MRB_TT_MAXDEFINE /* 24 */
MRB_TT_BREAK, /* 24 */
MRB_TT_MAXDEFINE /* 25 */
};
#include <mruby/object.h>