summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorYukihiro Matsumoto <[email protected]>2012-06-01 08:17:10 +0900
committerYukihiro Matsumoto <[email protected]>2012-06-01 08:17:10 +0900
commit8180fee1808c56048b9fa18a8dd16014e694e48e (patch)
treec0f0ac90e18f2476b73cbbf348ae722d555e48d7
parent48d5df998702c7bceb980abb5515a33a78e7d93f (diff)
parent0d15cfd5ec1e7d296d3fea67952b4039d5a2e54b (diff)
downloadmruby-8180fee1808c56048b9fa18a8dd16014e694e48e.tar.gz
mruby-8180fee1808c56048b9fa18a8dd16014e694e48e.zip
Merge branch 'master' of github.com:mruby/mruby
-rw-r--r--mrblib/kernel.rb9
-rw-r--r--src/kernel.c8
2 files changed, 9 insertions, 8 deletions
diff --git a/mrblib/kernel.rb b/mrblib/kernel.rb
index af743e12a..de5196482 100644
--- a/mrblib/kernel.rb
+++ b/mrblib/kernel.rb
@@ -28,13 +28,14 @@ module Kernel
# Alias for +send+.
#
# ISO 15.3.1.3.4
- def __send__(symbol, *args, &block)
+ #def __send__(symbol, *args, &block)
### *** TODO *** ###
- end
+ #end
# 15.3.1.3.18
def instance_eval(string=nil, &block)
### *** TODO *** ###
+ raise "Not implemented yet"
end
##
@@ -62,9 +63,9 @@ module Kernel
# block.
#
# ISO 15.3.1.3.44
- def send(symbol, *args, &block)
+ #def send(symbol, *args, &block)
### *** TODO *** ###
- end
+ #end
##
# Print arguments
diff --git a/src/kernel.c b/src/kernel.c
index 17951afc7..9ee9e8d34 100644
--- a/src/kernel.c
+++ b/src/kernel.c
@@ -274,11 +274,11 @@ mrb_f_send(int argc, mrb_value *argv, mrb_value recv)
static mrb_value
mrb_f_send_m(mrb_state *mrb, mrb_value self)
{
- mrb_value *argv;
+ mrb_value name, block, *argv;
int argc;
-
- mrb_get_args(mrb, "*", &argv, &argc);
- return mrb_f_send(argc, argv, self);
+
+ mrb_get_args(mrb, "&o*", &block, &name, &argv, &argc);
+ return mrb_funcall_with_block(mrb,self, mrb_string_value_ptr(mrb, name), argc, argv, block);
}
/* 15.3.1.2.1 */