mirror of
https://github.com/mruby/mruby
synced 2026-06-08 16:11:16 +00:00
introduce toplevel object main; close #327
This commit is contained in:
@@ -39,6 +39,8 @@ mrb_class(mrb_state *mrb, mrb_value v)
|
||||
return mrb->fixnum_class;
|
||||
case MRB_TT_FLOAT:
|
||||
return mrb->float_class;
|
||||
case MRB_TT_MAIN:
|
||||
return mrb->object_class;
|
||||
|
||||
#ifdef ENABLE_REGEXP
|
||||
case MRB_TT_REGEX:
|
||||
|
||||
@@ -34,7 +34,8 @@ enum mrb_vtype {
|
||||
MRB_TT_FILE, /* 21 */
|
||||
MRB_TT_ENV, /* 22 */
|
||||
MRB_TT_DATA, /* 23 */
|
||||
MRB_TT_MAXDEFINE /* 24 */
|
||||
MRB_TT_MAIN, /* 24 */
|
||||
MRB_TT_MAXDEFINE /* 25 */
|
||||
};
|
||||
|
||||
typedef struct mrb_value {
|
||||
@@ -94,7 +95,8 @@ enum mrb_vtype {
|
||||
MRB_TT_FILE, /* 22 */
|
||||
MRB_TT_ENV, /* 23 */
|
||||
MRB_TT_DATA, /* 24 */
|
||||
MRB_TT_MAXDEFINE /* 25 */
|
||||
MRB_TT_MAIN, /* 25 */
|
||||
MRB_TT_MAXDEFINE /* 26 */
|
||||
};
|
||||
|
||||
#ifdef MRB_ENDIAN_BIG
|
||||
|
||||
@@ -64,6 +64,9 @@ mrb_obj_inspect(mrb_state *mrb, mrb_value obj)
|
||||
else if (mrb_nil_p(obj)) {
|
||||
return mrb_str_new(mrb, "nil", 3);
|
||||
}
|
||||
else if (mrb_type(obj) == MRB_TT_MAIN) {
|
||||
return mrb_str_new(mrb, "main", 4);
|
||||
}
|
||||
return mrb_funcall(mrb, obj, "to_s", 0, 0);
|
||||
}
|
||||
|
||||
|
||||
+4
-2
@@ -97,6 +97,8 @@ mrb_add_irep(mrb_state *mrb, int idx)
|
||||
mrb_value
|
||||
mrb_top_self(mrb_state *mrb)
|
||||
{
|
||||
// for now
|
||||
return mrb_nil_value();
|
||||
mrb_value v;
|
||||
|
||||
MRB_SET_VALUE(v, MRB_TT_MAIN, value.i, 0);
|
||||
return v;
|
||||
}
|
||||
|
||||
+1
-1
@@ -338,5 +338,5 @@ end
|
||||
|
||||
assert('Kernel#to_s', '15.3.1.3.46') do
|
||||
# TODO looks strange..
|
||||
to_s == ''
|
||||
nil.to_s == ''
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user