@Override public Object execute(VirtualFrame frame) { if (RubyArguments.getUserArgumentsCount(frame.getArguments()) < minimum) { defaultValueProfile.enter(); return defaultValue.execute(frame); } else { return RubyArguments.getUserArgument(frame.getArguments(), index); } }
@Override public Object execute(VirtualFrame frame) { final RubyArguments rubyArguments = frame.getArguments(RubyArguments.class); final Object[] arguments = rubyArguments.getArguments(); final RubyClass arrayClass = getContext().getCoreLibrary().getArrayClass(); if (arguments.length <= index) { return new RubyArray(arrayClass); } else if (index == 0) { return new RubyArray(arrayClass, new ObjectArrayStore(arguments)); } else { return new RubyArray( arrayClass, new ObjectArrayStore(Arrays.copyOfRange(arguments, index, arguments.length))); } }