summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author卜部昌平 <shyouhei@ruby-lang.org>2020-07-02 09:44:23 +0900
committer卜部昌平 <shyouhei@ruby-lang.org>2020-07-02 14:34:30 +0900
commitbf3f03c9258dab45fee891007c7806f2d095db09 (patch)
treee0ad1fc433c9afdfab7615a003eb718800b1f09b
parent49029811d998d919c1f31f39e7a4b82f42ff3eaa (diff)
integer.rbinc: do not generate C functions
This changeset changes for instance Integer#integer? from: == disasm: #<ISeq:to_i@<internal:integer>:66 (66,2)-(69,5)> (catch: FALSE) 0000 opt_invokebuiltin_delegate_leave <builtin!_bi7/0>, 0 (68)[LiCa] 0003 leave (69)[Re] to: == disasm: #<ISeq:to_i@<internal:integer>:66 (66,2)-(69,5)> (catch: FALSE) 0000 putself (68)[LiCa] 0001 leave (69)[Re] which is of course faster.
Notes
Notes: Merged: https://github.com/ruby/ruby/pull/3277
-rw-r--r--integer.rb12
1 files changed, 4 insertions, 8 deletions
diff --git a/integer.rb b/integer.rb
index a9e27345f4..daf11b088f 100644
--- a/integer.rb
+++ b/integer.rb
@@ -23,8 +23,7 @@ class Integer
#
# Since +int+ is already an Integer, this always returns +true+.
def integer?
- Primitive.attr! 'inline'
- Primitive.cexpr! 'Qtrue'
+ return true
end
def magnitude
@@ -53,8 +52,7 @@ class Integer
#
# For example, <code>?a.ord</code> returns 97 both in 1.8 and 1.9.
def ord
- Primitive.attr! 'inline'
- Primitive.cexpr! 'self'
+ return self
end
# call-seq:
@@ -64,8 +62,7 @@ class Integer
#
# #to_int is an alias for #to_i.
def to_i
- Primitive.attr! 'inline'
- Primitive.cexpr! 'self'
+ return self
end
# call-seq:
@@ -73,8 +70,7 @@ class Integer
#
# Since +int+ is already an Integer, returns +self+.
def to_int
- Primitive.attr! 'inline'
- Primitive.cexpr! 'self'
+ return self
end
# call-seq: