mirror of
https://github.com/mruby/mruby
synced 2026-06-08 16:11:16 +00:00
kernel.c: removed some Kernel singleton methods
Since virtually no one calls `Kernel.block_given?` but just `block_given?`. For the cases `raise` is redefined (like Ruby/Tk), `Kernel.raise` is kept.
This commit is contained in:
@@ -576,8 +576,10 @@ mrb_init_kernel(mrb_state *mrb)
|
||||
struct RClass *krn;
|
||||
|
||||
mrb->kernel_module = krn = mrb_define_module_id(mrb, MRB_SYM(Kernel)); /* 15.3.1 */
|
||||
#if 0
|
||||
mrb_define_class_method_id(mrb, krn, MRB_SYM_Q(block_given), mrb_f_block_given_p_m, MRB_ARGS_NONE()); /* 15.3.1.2.2 */
|
||||
mrb_define_class_method_id(mrb, krn, MRB_SYM_Q(iterator), mrb_f_block_given_p_m, MRB_ARGS_NONE()); /* 15.3.1.2.5 */
|
||||
#endif
|
||||
mrb_define_class_method_id(mrb, krn, MRB_SYM(raise), mrb_f_raise, MRB_ARGS_OPT(2)); /* 15.3.1.2.12 */
|
||||
|
||||
mrb_define_method_id(mrb, krn, MRB_OPSYM(eqq), mrb_eqq_m, MRB_ARGS_REQ(1)); /* 15.3.1.3.2 */
|
||||
|
||||
+2
-26
@@ -5,35 +5,11 @@ assert('Kernel', '15.3.1') do
|
||||
assert_equal Module, Kernel.class
|
||||
end
|
||||
|
||||
assert('Kernel.block_given?', '15.3.1.2.2') do
|
||||
def bg_try(&b)
|
||||
if Kernel.block_given?
|
||||
yield
|
||||
else
|
||||
"no block"
|
||||
end
|
||||
end
|
||||
|
||||
assert_false Kernel.block_given?
|
||||
# test without block
|
||||
assert_equal "no block", bg_try
|
||||
# test with block
|
||||
assert_equal "block" do
|
||||
bg_try { "block" }
|
||||
end
|
||||
# test with block
|
||||
assert_equal "block" do
|
||||
bg_try do
|
||||
"block"
|
||||
end
|
||||
end
|
||||
end
|
||||
# Kernel.block_given? is not provided by mruby. '15.3.1.2.2'
|
||||
|
||||
# Kernel.eval is provided by the mruby-eval mrbgem. '15.3.1.2.3'
|
||||
|
||||
assert('Kernel.iterator?', '15.3.1.2.5') do
|
||||
assert_false Kernel.iterator?
|
||||
end
|
||||
# Kernel.iterator? is not provided by mruby. '15.3.1.2.5'
|
||||
|
||||
# Kernel.lambda is not provided by mruby. '15.3.1.2.6'
|
||||
|
||||
|
||||
Reference in New Issue
Block a user