@Override public Object execute(VirtualFrame frame) { final int count = RubyArguments.getArgumentsCount(frame.getArguments()); final int effectiveIndex = count + negativeIndex; assert effectiveIndex < count; return RubyArguments.getArgument(frame.getArguments(), effectiveIndex); }
@Override public Object execute(VirtualFrame frame) { final int argumentCount = RubyArguments.getArgumentsCount(frame); if (notEnoughArgumentsProfile.profile(argumentCount <= minArgumentCount)) { return null; } final Object lastArgument = RubyArguments.getArgument(frame, argumentCount - 1); if (lastArgumentIsHashProfile.profile(RubyGuards.isRubyHash(lastArgument))) { return lastArgument; } return tryConvertToHash(frame, argumentCount, lastArgument); }