@@ -2000,8 +2000,10 @@ protected Object downto(int from, int to, RubyProc block,
2000
2000
}
2001
2001
2002
2002
@ Specialization
2003
- protected Object downto (int from , double to , RubyProc block ) {
2004
- return downto (from , (int ) Math .ceil (to ), block );
2003
+ protected Object downto (int from , double to , RubyProc block ,
2004
+ @ Cached @ Shared CallBlockNode yieldNode ,
2005
+ @ Cached @ Shared InlinedLoopConditionProfile loopProfile ) {
2006
+ return downto (from , (int ) Math .ceil (to ), block , yieldNode , loopProfile );
2005
2007
}
2006
2008
2007
2009
@ Specialization
@@ -2021,8 +2023,10 @@ protected Object downto(long from, long to, RubyProc block,
2021
2023
}
2022
2024
2023
2025
@ Specialization
2024
- protected Object downto (long from , double to , RubyProc block ) {
2025
- return downto (from , (long ) Math .ceil (to ), block );
2026
+ protected Object downto (long from , double to , RubyProc block ,
2027
+ @ Cached @ Shared CallBlockNode yieldNode ,
2028
+ @ Cached @ Shared InlinedLoopConditionProfile loopProfile ) {
2029
+ return downto (from , (long ) Math .ceil (to ), block , yieldNode , loopProfile );
2026
2030
}
2027
2031
2028
2032
@ Specialization (guards = "isRubyBignum(from) || !isImplicitLongOrDouble(to)" )
@@ -2079,8 +2083,9 @@ protected Object upto(int from, int to, RubyProc block,
2079
2083
}
2080
2084
2081
2085
@ Specialization
2082
- protected Object upto (int from , double to , RubyProc block ) {
2083
- return upto (from , (int ) Math .floor (to ), block );
2086
+ protected Object upto (int from , double to , RubyProc block ,
2087
+ @ Cached @ Shared CallBlockNode yieldNode ) {
2088
+ return upto (from , (int ) Math .floor (to ), block , yieldNode );
2084
2089
}
2085
2090
2086
2091
@ Specialization
@@ -2099,8 +2104,9 @@ protected Object upto(long from, long to, RubyProc block,
2099
2104
}
2100
2105
2101
2106
@ Specialization
2102
- protected Object upto (long from , double to , RubyProc block ) {
2103
- return upto (from , (long ) Math .floor (to ), block );
2107
+ protected Object upto (long from , double to , RubyProc block ,
2108
+ @ Cached @ Shared CallBlockNode yieldNode ) {
2109
+ return upto (from , (long ) Math .floor (to ), block , yieldNode );
2104
2110
}
2105
2111
2106
2112
@ Specialization (guards = "isRubyBignum(from) || !isImplicitLongOrDouble(to)" )
0 commit comments