summaryrefslogtreecommitdiffhomepage
path: root/mrblib
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2016-08-20 00:03:30 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2016-08-20 00:03:30 +0900
commitff3e4b91f282ade0c205b72e18c08ca22acdcdf8 (patch)
treeb314d821bbb0c9449863619352e19ddce761a471 /mrblib
parentb2fceae461c8c266136cd881ce7969a05061cada (diff)
downloadmruby-ff3e4b91f282ade0c205b72e18c08ca22acdcdf8.tar.gz
mruby-ff3e4b91f282ade0c205b72e18c08ca22acdcdf8.zip
Move Module#include and #prepend to class.c; ref #3197
To avoid VM nesting with mrb_funcall()
Diffstat (limited to 'mrblib')
-rw-r--r--mrblib/00class.rb15
1 files changed, 15 insertions, 0 deletions
diff --git a/mrblib/00class.rb b/mrblib/00class.rb
index 39e0d5091..f3762e8d0 100644
--- a/mrblib/00class.rb
+++ b/mrblib/00class.rb
@@ -8,4 +8,19 @@ class Module
def attr(name)
attr_reader(name)
end
+
+ # 15.2.2.4.27
+ def include(*args)
+ args.reverse.each do |m|
+ m.append_features(self)
+ m.included(self)
+ end
+ end
+
+ def prepend(*args)
+ args.reverse.each do |m|
+ m.prepend_features(self)
+ m.prepended(self)
+ end
+ end
end