Example #1
0
 @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);
  }